﻿// C++/WinRT v1.0.180227.3

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

#pragma once
#include "winrt/base.h"

WINRT_WARNING_PUSH
#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.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.Controls.2.h"
#include "winrt/Windows.UI.Xaml.h"

namespace winrt::impl {

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> event_token consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->add_Opened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IAppBar> consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IAppBar>(this, &abi_t<Windows::UI::Xaml::Controls::IAppBar>::remove_Opened, Opened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->remove_Opened(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar)->add_Closed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IAppBar> consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IAppBar>(this, &abi_t<Windows::UI::Xaml::Controls::IAppBar>::remove_Closed, Closed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->add_Opening(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IAppBar3> consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IAppBar3>(this, &abi_t<Windows::UI::Xaml::Controls::IAppBar3>::remove_Opening, Opening(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->remove_Opening(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBar3)->add_Closing(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IAppBar3> consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IAppBar3>(this, &abi_t<Windows::UI::Xaml::Controls::IAppBar3>::remove_Closing, Closing(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::AppBarButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::AppBar consume_Windows_UI_Xaml_Controls_IAppBarFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::AppBar instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::AppBarSeparator instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarSeparatorFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::AppBarToggleButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->add_SuggestionChosen(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IAutoSuggestBox> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IAutoSuggestBox>(this, &abi_t<Windows::UI::Xaml::Controls::IAutoSuggestBox>::remove_SuggestionChosen, SuggestionChosen(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->remove_SuggestionChosen(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox)->add_TextChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IAutoSuggestBox> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IAutoSuggestBox>(this, &abi_t<Windows::UI::Xaml::Controls::IAutoSuggestBox>::remove_TextChanged, TextChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBox2)->add_QuerySubmitted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IAutoSuggestBox2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IAutoSuggestBox2>(this, &abi_t<Windows::UI::Xaml::Controls::IAutoSuggestBox2>::remove_QuerySubmitted, QuerySubmitted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted(event_token const& token) const
{
    check_hresult(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> 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::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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs)->CheckCurrent(&returnValue));
    return returnValue;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::BitmapIcon instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::BitmapIconSource instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IBitmapIconSourceFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::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::Controls::Button consume_Windows_UI_Xaml_Controls_IButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Button instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_CalendarViewDayItemChanging(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ICalendarDatePicker> consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(auto_revoke_t, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ICalendarDatePicker>(this, &abi_t<Windows::UI::Xaml::Controls::ICalendarDatePicker>::remove_CalendarViewDayItemChanging, CalendarViewDayItemChanging(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_CalendarViewDayItemChanging(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarDatePicker, Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_DateChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ICalendarDatePicker> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ICalendarDatePicker>(this, &abi_t<Windows::UI::Xaml::Controls::ICalendarDatePicker>::remove_DateChanged, DateChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_DateChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_Opened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ICalendarDatePicker> consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ICalendarDatePicker>(this, &abi_t<Windows::UI::Xaml::Controls::ICalendarDatePicker>::remove_Opened, Opened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->remove_Opened(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePicker)->add_Closed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ICalendarDatePicker> consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ICalendarDatePicker>(this, &abi_t<Windows::UI::Xaml::Controls::ICalendarDatePicker>::remove_Closed, Closed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(event_token const& token) const
{
    check_hresult(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::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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::CalendarDatePicker instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarDatePickerFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> 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> event_token consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->add_CalendarViewDayItemChanging(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ICalendarView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ICalendarView>(this, &abi_t<Windows::UI::Xaml::Controls::ICalendarView>::remove_CalendarViewDayItemChanging, CalendarViewDayItemChanging(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->remove_CalendarViewDayItemChanging(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarView)->add_SelectedDatesChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ICalendarView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ICalendarView>(this, &abi_t<Windows::UI::Xaml::Controls::ICalendarView>::remove_SelectedDatesChanged, SelectedDatesChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::CalendarViewDayItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::CalendarView instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICalendarViewFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Canvas instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 length{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->GetLeft(get_abi(element), &length));
    return length;
}

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 length{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->GetTop(get_abi(element), &length));
    return length;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICanvasStatics)->GetZIndex(get_abi(element), &value));
    return value;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::CheckBox instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICheckBoxFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorChangedEventArgs)->get_OldColor(put_abi(result)));
    return result;
}

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

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

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> result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_PreviousColor(put_abi(result)));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsAlphaEnabled(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorSpectrumVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorPreviewVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorSliderVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsAlphaSliderVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsMoreButtonVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsColorChannelTextInputVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsAlphaTextInputVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_IsHexInputVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MinHue(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MaxHue(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MinSaturation(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MaxSaturation(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MinValue(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_MaxValue(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_ColorSpectrumShape(put_abi(result)));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->get_ColorSpectrumComponents(put_abi(result)));
    return result;
}

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> event_token consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ColorPicker, Windows::UI::Xaml::Controls::ColorChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPicker)->add_ColorChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IColorPicker> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IColorPicker>(this, &abi_t<Windows::UI::Xaml::Controls::IColorPicker>::remove_ColorChanged, ColorChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ColorPicker instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IColorPickerFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->add_DropDownClosed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IComboBox> consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IComboBox>(this, &abi_t<Windows::UI::Xaml::Controls::IComboBox>::remove_DropDownClosed, DropDownClosed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->remove_DropDownClosed(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBox)->add_DropDownOpened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IComboBox> consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IComboBox>(this, &abi_t<Windows::UI::Xaml::Controls::IComboBox>::remove_DropDownOpened, DropDownOpened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(event_token const& token) const
{
    check_hresult(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> Windows::UI::Xaml::Controls::ComboBox consume_Windows_UI_Xaml_Controls_IComboBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ComboBox instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IComboBoxFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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

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::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> event_token consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CommandBar, Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBar3)->add_DynamicOverflowItemsChanging(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ICommandBar3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ICommandBar3>(this, &abi_t<Windows::UI::Xaml::Controls::ICommandBar3>::remove_DynamicOverflowItemsChanging, DynamicOverflowItemsChanging(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::CommandBar instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ICommandBarFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ContentControl instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentControlFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_Closing(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IContentDialog> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IContentDialog>(this, &abi_t<Windows::UI::Xaml::Controls::IContentDialog>::remove_Closing, Closing(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_Closing(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_Closed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IContentDialog> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IContentDialog>(this, &abi_t<Windows::UI::Xaml::Controls::IContentDialog>::remove_Closed, Closed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_Closed(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_Opened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IContentDialog> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IContentDialog>(this, &abi_t<Windows::UI::Xaml::Controls::IContentDialog>::remove_Opened, Opened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_Opened(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_PrimaryButtonClick(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IContentDialog> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IContentDialog>(this, &abi_t<Windows::UI::Xaml::Controls::IContentDialog>::remove_PrimaryButtonClick, PrimaryButtonClick(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->remove_PrimaryButtonClick(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->add_SecondaryButtonClick(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IContentDialog> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IContentDialog>(this, &abi_t<Windows::UI::Xaml::Controls::IContentDialog>::remove_SecondaryButtonClick, SecondaryButtonClick(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick(event_token const& token) const
{
    check_hresult(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> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog)->ShowAsync(put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog2)->add_CloseButtonClick(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IContentDialog2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IContentDialog2>(this, &abi_t<Windows::UI::Xaml::Controls::IContentDialog2>::remove_CloseButtonClick, CloseButtonClick(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick(event_token const& token) const
{
    check_hresult(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> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialog3)->ShowAsyncWithPlacement(get_abi(placement), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs)->GetDeferral(put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs)->GetDeferral(put_abi(returnValue)));
    return returnValue;
}

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

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::Controls::ContentPresenter consume_Windows_UI_Xaml_Controls_IContentPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ContentPresenter instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IContentPresenterFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> 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> event_token consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(Windows::UI::Xaml::DependencyPropertyChangedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->add_IsEnabledChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IControl> consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(auto_revoke_t, Windows::UI::Xaml::DependencyPropertyChangedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IControl>(this, &abi_t<Windows::UI::Xaml::Controls::IControl>::remove_IsEnabledChanged, IsEnabledChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(event_token const& token) const
{
    check_hresult(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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->ApplyTemplate(&returnValue));
    return returnValue;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IControl<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
{
    bool returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl)->Focus(get_abi(value), &returnValue));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusEngagedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->add_FocusEngaged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IControl4> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IControl4>(this, &abi_t<Windows::UI::Xaml::Controls::IControl4>::remove_FocusEngaged, FocusEngaged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->remove_FocusEngaged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControl4)->add_FocusDisengaged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IControl4> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IControl4>(this, &abi_t<Windows::UI::Xaml::Controls::IControl4>::remove_FocusDisengaged, FocusDisengaged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged(event_token const& token) const
{
    check_hresult(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::Control consume_Windows_UI_Xaml_Controls_IControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Control instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlProtected)->GetTemplateChild(get_abi(childName), put_abi(returnValue)));
    return returnValue;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics3)->GetIsTemplateFocusTarget(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IControlStatics5)->GetIsTemplateKeyTipTarget(get_abi(element), &value));
    return value;
}

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::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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelector)->SelectTemplate(get_abi(item), get_abi(container), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelector2)->SelectTemplateForItem(get_abi(item), put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::Controls::DataTemplateSelector consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::DataTemplateSelector instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides)->SelectTemplateCore(get_abi(item), get_abi(container), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2)->SelectTemplateForItemCore(get_abi(item), put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePicker)->add_DateChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IDatePicker> consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(auto_revoke_t, Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IDatePicker>(this, &abi_t<Windows::UI::Xaml::Controls::IDatePicker>::remove_DateChanged, DateChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(event_token const& token) const
{
    check_hresult(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::UI::Xaml::Controls::DatePicker consume_Windows_UI_Xaml_Controls_IDatePickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::DatePicker instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePickerFlyout, Windows::UI::Xaml::Controls::DatePickedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->add_DatePicked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IDatePickerFlyout> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IDatePickerFlyout>(this, &abi_t<Windows::UI::Xaml::Controls::IDatePickerFlyout>::remove_DatePicked, DatePicked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked(event_token const& token) const
{
    check_hresult(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>> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IDatePickerFlyout)->ShowAtAsync(get_abi(target), put_abi(returnValue)));
    return returnValue;
}

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::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::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::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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::FlipView instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlipViewFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> Windows::UI::Xaml::Controls::FlipViewItem consume_Windows_UI_Xaml_Controls_IFlipViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::FlipViewItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlipViewItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Flyout instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyoutFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> Windows::UI::Xaml::Controls::FlyoutPresenter consume_Windows_UI_Xaml_Controls_IFlyoutPresenterFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::FlyoutPresenter instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFlyoutPresenterFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::FontIcon instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::FontIconSource instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFontIconSourceFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(Windows::UI::Xaml::Navigation::NavigatedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_Navigated(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IFrame> consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(auto_revoke_t, Windows::UI::Xaml::Navigation::NavigatedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IFrame>(this, &abi_t<Windows::UI::Xaml::Controls::IFrame>::remove_Navigated, Navigated(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_Navigated(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_Navigating(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IFrame> consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(auto_revoke_t, Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IFrame>(this, &abi_t<Windows::UI::Xaml::Controls::IFrame>::remove_Navigating, Navigating(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_Navigating(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_NavigationFailed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IFrame> consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(auto_revoke_t, Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IFrame>(this, &abi_t<Windows::UI::Xaml::Controls::IFrame>::remove_NavigationFailed, NavigationFailed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->remove_NavigationFailed(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->add_NavigationStopped(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IFrame> consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(auto_revoke_t, Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IFrame>(this, &abi_t<Windows::UI::Xaml::Controls::IFrame>::remove_NavigationStopped, NavigationStopped(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(event_token const& token) const
{
    check_hresult(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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->Navigate(get_abi(sourcePageType), get_abi(parameter), &returnValue));
    return returnValue;
}

template <typename D> hstring consume_Windows_UI_Xaml_Controls_IFrame<D>::GetNavigationState() const
{
    hstring returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame)->GetNavigationState(put_abi(returnValue)));
    return returnValue;
}

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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrame2)->Navigate(get_abi(sourcePageType), get_abi(parameter), get_abi(infoOverride), &returnValue));
    return returnValue;
}

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> Windows::UI::Xaml::Controls::Frame consume_Windows_UI_Xaml_Controls_IFrameFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Frame instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IFrameFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::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::Grid consume_Windows_UI_Xaml_Controls_IGridFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Grid instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetRow(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetColumn(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetRowSpan(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridStatics)->GetColumnSpan(get_abi(element), &value));
    return value;
}

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::Controls::GridView consume_Windows_UI_Xaml_Controls_IGridViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::GridView instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridViewFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> Windows::UI::Xaml::Controls::GridViewHeaderItem consume_Windows_UI_Xaml_Controls_IGridViewHeaderItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::GridViewHeaderItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::GridViewItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGridViewItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> Windows::UI::Xaml::Controls::GroupItem consume_Windows_UI_Xaml_Controls_IGroupItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::GroupItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::GroupStyle instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyleFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyleSelector)->SelectGroupStyle(get_abi(group), level, put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::Controls::GroupStyleSelector consume_Windows_UI_Xaml_Controls_IGroupStyleSelectorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::GroupStyleSelector instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides)->SelectGroupStyleCore(get_abi(group), level, put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->add_Opened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IHandwritingView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IHandwritingView>(this, &abi_t<Windows::UI::Xaml::Controls::IHandwritingView>::remove_Opened, Opened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->remove_Opened(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingView)->add_Closed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IHandwritingView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IHandwritingView>(this, &abi_t<Windows::UI::Xaml::Controls::IHandwritingView>::remove_Closed, Closed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::HandwritingView instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHandwritingViewFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->add_SectionHeaderClick(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IHub> consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(auto_revoke_t, Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IHub>(this, &abi_t<Windows::UI::Xaml::Controls::IHub>::remove_SectionHeaderClick, SectionHeaderClick(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->remove_SectionHeaderClick(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHub)->add_SectionsInViewChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IHub> consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(auto_revoke_t, Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IHub>(this, &abi_t<Windows::UI::Xaml::Controls::IHub>::remove_SectionsInViewChanged, SectionsInViewChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Hub instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::HubSection instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHubSectionFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::HyperlinkButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IHyperlinkButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::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> event_token consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(Windows::UI::Xaml::ExceptionRoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->add_ImageFailed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IImage> consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(auto_revoke_t, Windows::UI::Xaml::ExceptionRoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IImage>(this, &abi_t<Windows::UI::Xaml::Controls::IImage>::remove_ImageFailed, ImageFailed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->remove_ImageFailed(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage)->add_ImageOpened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IImage> consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IImage>(this, &abi_t<Windows::UI::Xaml::Controls::IImage>::remove_ImageOpened, ImageOpened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(event_token const& token) const
{
    check_hresult(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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage2)->GetAsCastingSource(put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Composition::CompositionBrush consume_Windows_UI_Xaml_Controls_IImage3<D>::GetAlphaMask() const
{
    Windows::UI::Composition::CompositionBrush returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IImage3)->GetAlphaMask(put_abi(returnValue)));
    return returnValue;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkCanvas instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkCanvasFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_ActiveToolChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IInkToolbar> consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IInkToolbar>(this, &abi_t<Windows::UI::Xaml::Controls::IInkToolbar>::remove_ActiveToolChanged, ActiveToolChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_ActiveToolChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_InkDrawingAttributesChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IInkToolbar> consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IInkToolbar>(this, &abi_t<Windows::UI::Xaml::Controls::IInkToolbar>::remove_InkDrawingAttributesChanged, InkDrawingAttributesChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_InkDrawingAttributesChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_EraseAllClicked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IInkToolbar> consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IInkToolbar>(this, &abi_t<Windows::UI::Xaml::Controls::IInkToolbar>::remove_EraseAllClicked, EraseAllClicked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->remove_EraseAllClicked(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->add_IsRulerButtonCheckedChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IInkToolbar> consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IInkToolbar>(this, &abi_t<Windows::UI::Xaml::Controls::IInkToolbar>::remove_IsRulerButtonCheckedChanged, IsRulerButtonCheckedChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(event_token const& token) const
{
    check_hresult(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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->GetToolButton(get_abi(tool), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar)->GetToggleButton(get_abi(tool), put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->add_IsStencilButtonCheckedChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IInkToolbar2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IInkToolbar2>(this, &abi_t<Windows::UI::Xaml::Controls::IInkToolbar2>::remove_IsStencilButtonCheckedChanged, IsStencilButtonCheckedChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged(event_token const& token) const
{
    check_hresult(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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbar2)->GetMenuButton(get_abi(menu), put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton consume_Windows_UI_Xaml_Controls_IInkToolbarBallpointPenButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPen)->CreateInkDrawingAttributes(get_abi(brush), strokeWidth, put_abi(returnValue)));
    return returnValue;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarCustomPenButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarCustomPen instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides)->CreateInkDrawingAttributesCore(get_abi(brush), strokeWidth, put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToggleButtonFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarCustomToolButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarEraserButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbar instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->add_Checked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem> consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>(this, &abi_t<Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>::remove_Checked, Checked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->remove_Checked(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem)->add_Unchecked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem> consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>(this, &abi_t<Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>::remove_Unchecked, Unchecked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarFlyoutItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarHighlighterButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarPencilButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarRulerButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::InkToolbarStencilButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->add_ItemsChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IItemContainerGenerator> consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(auto_revoke_t, Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IItemContainerGenerator>(this, &abi_t<Windows::UI::Xaml::Controls::IItemContainerGenerator>::remove_ItemsChanged, ItemsChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(event_token const& token) const
{
    check_hresult(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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->ItemFromContainer(get_abi(container), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->ContainerFromItem(get_abi(item), put_abi(returnValue)));
    return returnValue;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::IndexFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    int32_t returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->IndexFromContainer(get_abi(container), &returnValue));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ContainerFromIndex(int32_t index) const
{
    Windows::UI::Xaml::DependencyObject returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->ContainerFromIndex(index, put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->GetItemContainerGeneratorForPanel(get_abi(panel), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->GeneratorPositionFromIndex(itemIndex, put_abi(returnValue)));
    return returnValue;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::IndexFromGeneratorPosition(Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position) const
{
    int32_t returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerGenerator)->IndexFromGeneratorPosition(get_abi(position), &returnValue));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->ItemFromContainer(get_abi(container), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->ContainerFromItem(get_abi(item), put_abi(returnValue)));
    return returnValue;
}

template <typename D> int32_t consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::IndexFromContainer(Windows::UI::Xaml::DependencyObject const& container) const
{
    int32_t returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->IndexFromContainer(get_abi(container), &returnValue));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ContainerFromIndex(int32_t index) const
{
    Windows::UI::Xaml::DependencyObject returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemContainerMapping)->ContainerFromIndex(index, put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControl3)->GroupHeaderContainerFromItemContainer(get_abi(itemContainer), put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::Controls::ItemsControl consume_Windows_UI_Xaml_Controls_IItemsControlFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ItemsControl instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::IsItemItsOwnContainerOverride(Windows::Foundation::IInspectable const& item) const
{
    bool returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->IsItemItsOwnContainerOverride(get_abi(item), &returnValue));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::DependencyObject consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::GetContainerForItemOverride() const
{
    Windows::UI::Xaml::DependencyObject returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlOverrides)->GetContainerForItemOverride(put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->GetItemsOwner(get_abi(element), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IItemsControlStatics)->ItemsControlFromItemContainer(get_abi(container), put_abi(returnValue)));
    return returnValue;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ListBox instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBoxFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> Windows::UI::Xaml::Controls::ListBoxItem consume_Windows_UI_Xaml_Controls_IListBoxItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ListBoxItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListBoxItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListPickerFlyout, Windows::UI::Xaml::Controls::ItemsPickedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->add_ItemsPicked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IListPickerFlyout> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IListPickerFlyout>(this, &abi_t<Windows::UI::Xaml::Controls::IListPickerFlyout>::remove_ItemsPicked, ItemsPicked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked(event_token const& token) const
{
    check_hresult(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>> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListPickerFlyout)->ShowAtAsync(get_abi(target), put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(Windows::UI::Xaml::Controls::ItemClickEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->add_ItemClick(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IListViewBase> consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(auto_revoke_t, Windows::UI::Xaml::Controls::ItemClickEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IListViewBase>(this, &abi_t<Windows::UI::Xaml::Controls::IListViewBase>::remove_ItemClick, ItemClick(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->remove_ItemClick(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->add_DragItemsStarting(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IListViewBase> consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(auto_revoke_t, Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IListViewBase>(this, &abi_t<Windows::UI::Xaml::Controls::IListViewBase>::remove_DragItemsStarting, DragItemsStarting(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(event_token const& token) const
{
    check_hresult(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> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase)->LoadMoreItemsAsync(put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase2)->add_ContainerContentChanging(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IListViewBase2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IListViewBase2>(this, &abi_t<Windows::UI::Xaml::Controls::IListViewBase2>::remove_ContainerContentChanging, ContainerContentChanging(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->add_DragItemsCompleted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IListViewBase4> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IListViewBase4>(this, &abi_t<Windows::UI::Xaml::Controls::IListViewBase4>::remove_DragItemsCompleted, DragItemsCompleted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->remove_DragItemsCompleted(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->add_ChoosingItemContainer(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IListViewBase4> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IListViewBase4>(this, &abi_t<Windows::UI::Xaml::Controls::IListViewBase4>::remove_ChoosingItemContainer, ChoosingItemContainer(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->remove_ChoosingItemContainer(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase4)->add_ChoosingGroupHeaderContainer(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IListViewBase4> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IListViewBase4>(this, &abi_t<Windows::UI::Xaml::Controls::IListViewBase4>::remove_ChoosingGroupHeaderContainer, ChoosingGroupHeaderContainer(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer(event_token const& token) const
{
    check_hresult(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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase5)->IsDragSource(&returnValue));
    return returnValue;
}

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> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase6)->TryStartConnectedAnimationAsync(get_abi(animation), get_abi(item), get_abi(elementName), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBase6)->PrepareConnectedAnimation(get_abi(key), get_abi(item), get_abi(elementName), put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::Controls::ListViewBase consume_Windows_UI_Xaml_Controls_IListViewBaseFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ListViewBase instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewBaseFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ListView instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> Windows::UI::Xaml::Controls::ListViewHeaderItem consume_Windows_UI_Xaml_Controls_IListViewHeaderItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ListViewHeaderItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewHeaderItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ListViewItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics)->GetRelativeScrollPosition(get_abi(listViewBase), get_abi(itemToKeyHandler), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics)->SetRelativeScrollPositionAsync(get_abi(listViewBase), get_abi(relativeScrollPosition), get_abi(keyToItemHandler), put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MediaOpened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_MediaOpened, MediaOpened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MediaOpened(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MediaEnded(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_MediaEnded, MediaEnded(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MediaEnded(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(Windows::UI::Xaml::ExceptionRoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MediaFailed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(auto_revoke_t, Windows::UI::Xaml::ExceptionRoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_MediaFailed, MediaFailed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MediaFailed(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_DownloadProgressChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_DownloadProgressChanged, DownloadProgressChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_DownloadProgressChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_BufferingProgressChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_BufferingProgressChanged, BufferingProgressChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_BufferingProgressChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_CurrentStateChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_CurrentStateChanged, CurrentStateChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_CurrentStateChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_MarkerReached(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(auto_revoke_t, Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_MarkerReached, MarkerReached(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_MarkerReached(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_RateChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(auto_revoke_t, Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_RateChanged, RateChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_RateChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_VolumeChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_VolumeChanged, VolumeChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->remove_VolumeChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->add_SeekCompleted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement> consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement>::remove_SeekCompleted, SeekCompleted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(event_token const& token) const
{
    check_hresult(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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->CanPlayType(get_abi(type), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement)->GetAudioStreamLanguage(get_abi(index), put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaElement, Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->add_PartialMediaFailureDetected(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaElement3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaElement3>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaElement3>::remove_PartialMediaFailureDetected, PartialMediaFailureDetected(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected(event_token const& token) const
{
    check_hresult(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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaElement3)->GetAsCastingSource(put_abi(returnValue)));
    return returnValue;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::MediaPlayerElement instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerElementFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::MediaPlayerPresenter instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaTransportControls, Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControls2)->add_ThumbnailRequested(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMediaTransportControls2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMediaTransportControls2>(this, &abi_t<Windows::UI::Xaml::Controls::IMediaTransportControls2>::remove_ThumbnailRequested, ThumbnailRequested(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::MediaTransportControls instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics)->GetDropoutOrder(get_abi(element), put_abi(value)));
    return value;
}

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::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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::MenuFlyout instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItem)->add_Click(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IMenuFlyoutItem> consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem>(this, &abi_t<Windows::UI::Xaml::Controls::IMenuFlyoutItem>::remove_Click, Click(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::MenuFlyoutItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::MenuFlyoutPresenter instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> Windows::UI::Xaml::Controls::MenuFlyoutSeparator consume_Windows_UI_Xaml_Controls_IMenuFlyoutSeparatorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::MenuFlyoutSeparator instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigate)->Navigate(get_abi(sourcePageType), &returnValue));
    return returnValue;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneOpen() const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_IsPaneOpen(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_CompactModeThresholdWidth(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_ExpandedModeThresholdWidth(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_DisplayMode(put_abi(result)));
    return result;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsSettingsVisible() const
{
    bool result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_IsSettingsVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_IsPaneToggleButtonVisible(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_AlwaysShowHeader(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_CompactPaneLength(&result));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_OpenPaneLength(&result));
    return result;
}

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 result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->get_AutoSuggestBox(put_abi(result)));
    return result;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->MenuItemFromContainer(get_abi(container), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->ContainerFromMenuItem(get_abi(item), put_abi(returnValue)));
    return returnValue;
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->add_SelectionChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::INavigationView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::INavigationView>(this, &abi_t<Windows::UI::Xaml::Controls::INavigationView>::remove_SelectionChanged, SelectionChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->add_ItemInvoked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::INavigationView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::INavigationView>(this, &abi_t<Windows::UI::Xaml::Controls::INavigationView>::remove_ItemInvoked, ItemInvoked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->remove_ItemInvoked(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView)->add_DisplayModeChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::INavigationView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::INavigationView>(this, &abi_t<Windows::UI::Xaml::Controls::INavigationView>::remove_DisplayModeChanged, DisplayModeChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_BackRequested(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::INavigationView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::INavigationView2>(this, &abi_t<Windows::UI::Xaml::Controls::INavigationView2>::remove_BackRequested, BackRequested(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_BackRequested(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneClosed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::INavigationView2> consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::INavigationView2>(this, &abi_t<Windows::UI::Xaml::Controls::INavigationView2>::remove_PaneClosed, PaneClosed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneClosed(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneClosing(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::INavigationView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::INavigationView2>(this, &abi_t<Windows::UI::Xaml::Controls::INavigationView2>::remove_PaneClosing, PaneClosing(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneClosing(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneOpened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::INavigationView2> consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::INavigationView2>(this, &abi_t<Windows::UI::Xaml::Controls::INavigationView2>::remove_PaneOpened, PaneOpened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneOpened(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->add_PaneOpening(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::INavigationView2> consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::INavigationView2>(this, &abi_t<Windows::UI::Xaml::Controls::INavigationView2>::remove_PaneOpening, PaneOpening(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationView2)->remove_PaneOpening(get_abi(token)));
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::NavigationView instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> Windows::UI::Xaml::Controls::NavigationViewItem consume_Windows_UI_Xaml_Controls_INavigationViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::NavigationViewItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> Windows::UI::Xaml::Controls::NavigationViewItemHeader consume_Windows_UI_Xaml_Controls_INavigationViewItemHeaderFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::NavigationViewItemHeader instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::NavigationViewItemSeparator consume_Windows_UI_Xaml_Controls_INavigationViewItemSeparatorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::NavigationViewItemSeparator instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::Controls::NavigationViewList consume_Windows_UI_Xaml_Controls_INavigationViewListFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::NavigationViewList instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::INavigationViewListFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::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> 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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Page instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPageFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::Controls::Panel consume_Windows_UI_Xaml_Controls_IPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Panel instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPanelFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ParallaxView instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IParallaxViewFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->add_PasswordChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPasswordBox> consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPasswordBox>(this, &abi_t<Windows::UI::Xaml::Controls::IPasswordBox>::remove_PasswordChanged, PasswordChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->remove_PasswordChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox)->add_ContextMenuOpening(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPasswordBox> consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPasswordBox>(this, &abi_t<Windows::UI::Xaml::Controls::IPasswordBox>::remove_ContextMenuOpening, ContextMenuOpening(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox2)->add_Paste(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPasswordBox2> consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(auto_revoke_t, Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPasswordBox2>(this, &abi_t<Windows::UI::Xaml::Controls::IPasswordBox2>::remove_Paste, Paste(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PasswordBox, Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox4)->add_PasswordChanging(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPasswordBox4> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPasswordBox4>(this, &abi_t<Windows::UI::Xaml::Controls::IPasswordBox4>::remove_PasswordChanging, PasswordChanging(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPasswordBox4)->remove_PasswordChanging(get_abi(token)));
}

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::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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::PathIcon instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIconFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::PathIconSource instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPathIconSourceFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::PersonPicture instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPersonPictureFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PickerFlyout, Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->add_Confirmed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPickerFlyout> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPickerFlyout>(this, &abi_t<Windows::UI::Xaml::Controls::IPickerFlyout>::remove_Confirmed, Confirmed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed(event_token const& token) const
{
    check_hresult(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> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPickerFlyout)->ShowAtAsync(get_abi(target), put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(Windows::UI::Xaml::Controls::SelectionChangedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_SelectionChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPivot> consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::Controls::SelectionChangedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPivot>(this, &abi_t<Windows::UI::Xaml::Controls::IPivot>::remove_SelectionChanged, SelectionChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemLoading(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPivot> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPivot>(this, &abi_t<Windows::UI::Xaml::Controls::IPivot>::remove_PivotItemLoading, PivotItemLoading(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemLoading(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemLoaded(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPivot> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPivot>(this, &abi_t<Windows::UI::Xaml::Controls::IPivot>::remove_PivotItemLoaded, PivotItemLoaded(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemLoaded(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemUnloading(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPivot> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPivot>(this, &abi_t<Windows::UI::Xaml::Controls::IPivot>::remove_PivotItemUnloading, PivotItemUnloading(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->remove_PivotItemUnloading(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivot)->add_PivotItemUnloaded(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IPivot> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IPivot>(this, &abi_t<Windows::UI::Xaml::Controls::IPivot>::remove_PivotItemUnloaded, PivotItemUnloaded(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Pivot instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::PivotItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IPivotStatics)->GetSlideInAnimationGroup(get_abi(element), put_abi(value)));
    return value;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ProgressBar instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IProgressBarFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::RadioButton instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRadioButtonFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RatingControl, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControl)->add_ValueChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRatingControl> consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RatingControl, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRatingControl>(this, &abi_t<Windows::UI::Xaml::Controls::IRatingControl>::remove_ValueChanged, ValueChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::RatingControl instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingControlFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::RatingItemFontInfo instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::RatingItemImageInfo instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::RatingItemInfo instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRatingItemInfoFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshContainer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainer)->add_RefreshRequested(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRefreshContainer> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRefreshContainer>(this, &abi_t<Windows::UI::Xaml::Controls::IRefreshContainer>::remove_RefreshRequested, RefreshRequested(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::RefreshContainer instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshContainerFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs)->GetDeferral(put_abi(value)));
    return value;
}

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> event_token consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->add_RefreshRequested(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRefreshVisualizer> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRefreshVisualizer>(this, &abi_t<Windows::UI::Xaml::Controls::IRefreshVisualizer>::remove_RefreshRequested, RefreshRequested(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->remove_RefreshRequested(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizer)->add_RefreshStateChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRefreshVisualizer> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRefreshVisualizer>(this, &abi_t<Windows::UI::Xaml::Controls::IRefreshVisualizer>::remove_RefreshStateChanged, RefreshStateChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::RefreshVisualizer instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRefreshVisualizerFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::RelativePanel consume_Windows_UI_Xaml_Controls_IRelativePanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::RelativePanel instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetLeftOf(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAbove(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetRightOf(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetBelow(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignHorizontalCenterWith(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignVerticalCenterWith(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignLeftWith(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignTopWith(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignRightWith(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignBottomWith(get_abi(element), put_abi(value)));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignLeftWithPanel(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignTopWithPanel(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignRightWithPanel(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignBottomWithPanel(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignHorizontalCenterWithPanel(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRelativePanelStatics)->GetAlignVerticalCenterWithPanel(get_abi(element), &value));
    return value;
}

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> 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> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->add_TextChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox> consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox>::remove_TextChanged, TextChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->remove_TextChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->add_SelectionChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox> consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox>::remove_SelectionChanged, SelectionChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox)->add_ContextMenuOpening(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox> consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox>::remove_ContextMenuOpening, ContextMenuOpening(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->add_Paste(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox2> consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(auto_revoke_t, Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox2>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox2>::remove_Paste, Paste(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox2)->remove_Paste(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextCompositionStarted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox3>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox3>::remove_TextCompositionStarted, TextCompositionStarted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextCompositionStarted(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextCompositionChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox3>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox3>::remove_TextCompositionChanged, TextCompositionChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_TextCompositionChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextCompositionEnded(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox3>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox3>::remove_TextCompositionEnded, TextCompositionEnded(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_CandidateWindowBoundsChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox3>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox3>::remove_CandidateWindowBoundsChanged, CandidateWindowBoundsChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->remove_CandidateWindowBoundsChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox3)->add_TextChanging(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox3>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox3>::remove_TextChanging, TextChanging(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging(event_token const& token) const
{
    check_hresult(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>> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox4)->GetLinguisticAlternativesAsync(put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->add_CopyingToClipboard(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox6> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox6>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox6>::remove_CopyingToClipboard, CopyingToClipboard(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->remove_CopyingToClipboard(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox6)->add_CuttingToClipboard(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox6> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox6>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox6>::remove_CuttingToClipboard, CuttingToClipboard(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->add_ContentLinkChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox7> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox7>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox7>::remove_ContentLinkChanged, ContentLinkChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->remove_ContentLinkChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Documents::ContentLinkInvokedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->add_ContentLinkInvoked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichEditBox7> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichEditBox7>(this, &abi_t<Windows::UI::Xaml::Controls::IRichEditBox7>::remove_ContentLinkInvoked, ContentLinkInvoked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBox7)->remove_ContentLinkInvoked(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::RichEditBox consume_Windows_UI_Xaml_Controls_IRichEditBoxFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::RichEditBox instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichEditBoxFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> 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> event_token consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->add_SelectionChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichTextBlock> consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichTextBlock>(this, &abi_t<Windows::UI::Xaml::Controls::IRichTextBlock>::remove_SelectionChanged, SelectionChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->add_ContextMenuOpening(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichTextBlock> consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichTextBlock>(this, &abi_t<Windows::UI::Xaml::Controls::IRichTextBlock>::remove_ContextMenuOpening, ContextMenuOpening(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(event_token const& token) const
{
    check_hresult(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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->GetPositionFromPoint(get_abi(point), put_abi(returnValue)));
    return returnValue;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
{
    bool returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock)->Focus(get_abi(value), &returnValue));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->add_IsTextTrimmedChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichTextBlock5> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichTextBlock5>(this, &abi_t<Windows::UI::Xaml::Controls::IRichTextBlock5>::remove_IsTextTrimmedChanged, IsTextTrimmedChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlock5)->remove_IsTextTrimmedChanged(get_abi(token)));
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->GetPositionFromPoint(get_abi(point), put_abi(returnValue)));
    return returnValue;
}

template <typename D> bool consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Focus(Windows::UI::Xaml::FocusState const& value) const
{
    bool returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow)->Focus(get_abi(value), &returnValue));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlockOverflow, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IRichTextBlockOverflow3)->add_IsTextTrimmedChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IRichTextBlockOverflow3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>(this, &abi_t<Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>::remove_IsTextTrimmedChanged, IsTextTrimmedChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged(event_token const& token) const
{
    check_hresult(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::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> 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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollContentPresenter)->MakeVisible(get_abi(visual), get_abi(rectangle), put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer)->add_ViewChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IScrollViewer> consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(auto_revoke_t, Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IScrollViewer>(this, &abi_t<Windows::UI::Xaml::Controls::IScrollViewer>::remove_ViewChanged, ViewChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->add_ViewChanging(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IScrollViewer2> consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(auto_revoke_t, Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IScrollViewer2>(this, &abi_t<Windows::UI::Xaml::Controls::IScrollViewer2>::remove_ViewChanging, ViewChanging(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(event_token const& token) const
{
    check_hresult(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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->ChangeView(get_abi(horizontalOffset), get_abi(verticalOffset), get_abi(zoomFactor), &returnValue));
    return returnValue;
}

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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer2)->ChangeViewWithOptionalAnimation(get_abi(horizontalOffset), get_abi(verticalOffset), get_abi(zoomFactor), disableAnimation, &returnValue));
    return returnValue;
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->add_DirectManipulationStarted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IScrollViewer3> consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IScrollViewer3>(this, &abi_t<Windows::UI::Xaml::Controls::IScrollViewer3>::remove_DirectManipulationStarted, DirectManipulationStarted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->remove_DirectManipulationStarted(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->add_DirectManipulationCompleted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IScrollViewer3> consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(auto_revoke_t, Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IScrollViewer3>(this, &abi_t<Windows::UI::Xaml::Controls::IScrollViewer3>::remove_DirectManipulationCompleted, DirectManipulationCompleted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewer3)->remove_DirectManipulationCompleted(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 horizontalScrollBarVisibility{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetHorizontalScrollBarVisibility(get_abi(element), put_abi(horizontalScrollBarVisibility)));
    return horizontalScrollBarVisibility;
}

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 verticalScrollBarVisibility{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetVerticalScrollBarVisibility(get_abi(element), put_abi(verticalScrollBarVisibility)));
    return verticalScrollBarVisibility;
}

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 isHorizontalRailEnabled{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsHorizontalRailEnabled(get_abi(element), &isHorizontalRailEnabled));
    return isHorizontalRailEnabled;
}

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 isVerticalRailEnabled{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsVerticalRailEnabled(get_abi(element), &isVerticalRailEnabled));
    return isVerticalRailEnabled;
}

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 isHorizontalScrollChainingEnabled{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsHorizontalScrollChainingEnabled(get_abi(element), &isHorizontalScrollChainingEnabled));
    return isHorizontalScrollChainingEnabled;
}

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 isVerticalScrollChainingEnabled{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsVerticalScrollChainingEnabled(get_abi(element), &isVerticalScrollChainingEnabled));
    return isVerticalScrollChainingEnabled;
}

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 isZoomChainingEnabled{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsZoomChainingEnabled(get_abi(element), &isZoomChainingEnabled));
    return isZoomChainingEnabled;
}

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 isScrollInertiaEnabled{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsScrollInertiaEnabled(get_abi(element), &isScrollInertiaEnabled));
    return isScrollInertiaEnabled;
}

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 isZoomInertiaEnabled{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsZoomInertiaEnabled(get_abi(element), &isZoomInertiaEnabled));
    return isZoomInertiaEnabled;
}

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 horizontalScrollMode{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetHorizontalScrollMode(get_abi(element), put_abi(horizontalScrollMode)));
    return horizontalScrollMode;
}

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 verticalScrollMode{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetVerticalScrollMode(get_abi(element), put_abi(verticalScrollMode)));
    return verticalScrollMode;
}

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 zoomMode{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetZoomMode(get_abi(element), put_abi(zoomMode)));
    return zoomMode;
}

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 isDeferredScrollingEnabled{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetIsDeferredScrollingEnabled(get_abi(element), &isDeferredScrollingEnabled));
    return isDeferredScrollingEnabled;
}

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 bringIntoViewOnFocusChange{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IScrollViewerStatics)->GetBringIntoViewOnFocusChange(get_abi(element), &bringIntoViewOnFocusChange));
    return bringIntoViewOnFocusChange;
}

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> 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> event_token consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_QueryChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISearchBox> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISearchBox>(this, &abi_t<Windows::UI::Xaml::Controls::ISearchBox>::remove_QueryChanged, QueryChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_QueryChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_SuggestionsRequested(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISearchBox> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISearchBox>(this, &abi_t<Windows::UI::Xaml::Controls::ISearchBox>::remove_SuggestionsRequested, SuggestionsRequested(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_SuggestionsRequested(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_QuerySubmitted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISearchBox> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISearchBox>(this, &abi_t<Windows::UI::Xaml::Controls::ISearchBox>::remove_QuerySubmitted, QuerySubmitted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_QuerySubmitted(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_ResultSuggestionChosen(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISearchBox> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISearchBox>(this, &abi_t<Windows::UI::Xaml::Controls::ISearchBox>::remove_ResultSuggestionChosen, ResultSuggestionChosen(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->remove_ResultSuggestionChosen(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::RoutedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBox)->add_PrepareForFocusOnKeyboardInput(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISearchBox> consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::RoutedEventArgs> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISearchBox>(this, &abi_t<Windows::UI::Xaml::Controls::ISearchBox>::remove_PrepareForFocusOnKeyboardInput, PrepareForFocusOnKeyboardInput(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SearchBox instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISearchBoxFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SelectionChangedEventArgs instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory)->CreateInstanceWithRemovedItemsAndAddedItems(get_abi(removedItems), get_abi(addedItems), get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->add_ViewChangeStarted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISemanticZoom> consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(auto_revoke_t, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISemanticZoom>(this, &abi_t<Windows::UI::Xaml::Controls::ISemanticZoom>::remove_ViewChangeStarted, ViewChangeStarted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->remove_ViewChangeStarted(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISemanticZoom)->add_ViewChangeCompleted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISemanticZoom> consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(auto_revoke_t, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISemanticZoom>(this, &abi_t<Windows::UI::Xaml::Controls::ISemanticZoom>::remove_ViewChangeCompleted, ViewChangeCompleted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(Windows::UI::Xaml::Controls::BackClickEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyout)->add_BackClick(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISettingsFlyout> consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(auto_revoke_t, Windows::UI::Xaml::Controls::BackClickEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISettingsFlyout>(this, &abi_t<Windows::UI::Xaml::Controls::ISettingsFlyout>::remove_BackClick, BackClick(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SettingsFlyout instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISettingsFlyoutFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::Slider instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISliderFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::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> event_token consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->add_PaneClosing(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISplitView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISplitView>(this, &abi_t<Windows::UI::Xaml::Controls::ISplitView>::remove_PaneClosing, PaneClosing(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->remove_PaneClosing(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView)->add_PaneClosed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISplitView> consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISplitView>(this, &abi_t<Windows::UI::Xaml::Controls::ISplitView>::remove_PaneClosed, PaneClosed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->add_PaneOpening(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISplitView3> consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISplitView3>(this, &abi_t<Windows::UI::Xaml::Controls::ISplitView3>::remove_PaneOpening, PaneOpening(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->remove_PaneOpening(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitView3)->add_PaneOpened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISplitView3> consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISplitView3>(this, &abi_t<Windows::UI::Xaml::Controls::ISplitView3>::remove_PaneOpened, PaneOpened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SplitView instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISplitViewFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::StackPanel consume_Windows_UI_Xaml_Controls_IStackPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::StackPanel instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStackPanelFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStyleSelector)->SelectStyle(get_abi(item), get_abi(container), put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::Controls::StyleSelector consume_Windows_UI_Xaml_Controls_IStyleSelectorFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::StyleSelector instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStyleSelectorFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IStyleSelectorOverrides)->SelectStyleCore(get_abi(item), get_abi(container), put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2)->CreateCoreIndependentInputSource(get_abi(deviceTypes), put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::Controls::SwapChainBackgroundPanel consume_Windows_UI_Xaml_Controls_ISwapChainBackgroundPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SwapChainBackgroundPanel instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwapChainPanel, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->add_CompositionScaleChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISwapChainPanel> consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwapChainPanel, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISwapChainPanel>(this, &abi_t<Windows::UI::Xaml::Controls::ISwapChainPanel>::remove_CompositionScaleChanged, CompositionScaleChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(event_token const& token) const
{
    check_hresult(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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanel)->CreateCoreIndependentInputSource(get_abi(deviceTypes), put_abi(returnValue)));
    return returnValue;
}

template <typename D> Windows::UI::Xaml::Controls::SwapChainPanel consume_Windows_UI_Xaml_Controls_ISwapChainPanelFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SwapChainPanel instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwapChainPanelFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SwipeControl instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeControlFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwipeItem, Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItem)->add_Invoked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ISwipeItem> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ISwipeItem>(this, &abi_t<Windows::UI::Xaml::Controls::ISwipeItem>::remove_Invoked, Invoked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked(event_token const& token) const
{
    check_hresult(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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SwipeItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SwipeItems instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISwipeItemsFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIconFactory)->CreateInstanceWithSymbol(get_abi(symbol), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::SymbolIconSource instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ISymbolIconSourceFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->add_SelectionChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBlock> consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBlock>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBlock>::remove_SelectionChanged, SelectionChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->add_ContextMenuOpening(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBlock> consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBlock>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBlock>::remove_ContextMenuOpening, ContextMenuOpening(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(event_token const& token) const
{
    check_hresult(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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock)->Focus(get_abi(value), &returnValue));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock4)->GetAlphaMask(put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->add_IsTextTrimmedChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBlock6> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBlock6>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBlock6>::remove_IsTextTrimmedChanged, IsTextTrimmedChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBlock6)->remove_IsTextTrimmedChanged(get_abi(token)));
}

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> 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> event_token consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(Windows::UI::Xaml::Controls::TextChangedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->add_TextChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox> consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(auto_revoke_t, Windows::UI::Xaml::Controls::TextChangedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox>::remove_TextChanged, TextChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->remove_TextChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->add_SelectionChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox> consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox>::remove_SelectionChanged, SelectionChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->remove_SelectionChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->add_ContextMenuOpening(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox> consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(auto_revoke_t, Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox>::remove_ContextMenuOpening, ContextMenuOpening(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(event_token const& token) const
{
    check_hresult(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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox)->GetRectFromCharacterIndex(charIndex, trailingEdge, put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->add_Paste(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox2> consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(auto_revoke_t, Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox2>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox2>::remove_Paste, Paste(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox2)->remove_Paste(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextCompositionStarted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox3>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox3>::remove_TextCompositionStarted, TextCompositionStarted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextCompositionStarted(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextCompositionChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox3>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox3>::remove_TextCompositionChanged, TextCompositionChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_TextCompositionChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextCompositionEnded(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox3>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox3>::remove_TextCompositionEnded, TextCompositionEnded(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_CandidateWindowBoundsChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox3>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox3>::remove_CandidateWindowBoundsChanged, CandidateWindowBoundsChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->remove_CandidateWindowBoundsChanged(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox3)->add_TextChanging(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox3> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox3>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox3>::remove_TextChanging, TextChanging(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging(event_token const& token) const
{
    check_hresult(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>> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox4)->GetLinguisticAlternativesAsync(put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->add_CopyingToClipboard(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox6> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox6>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox6>::remove_CopyingToClipboard, CopyingToClipboard(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->remove_CopyingToClipboard(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->add_CuttingToClipboard(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox6> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox6>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox6>::remove_CuttingToClipboard, CuttingToClipboard(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->remove_CuttingToClipboard(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBox6)->add_BeforeTextChanging(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITextBox6> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITextBox6>(this, &abi_t<Windows::UI::Xaml::Controls::ITextBox6>::remove_BeforeTextChanging, BeforeTextChanging(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging(event_token const& token) const
{
    check_hresult(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> 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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::TextBox instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITextBoxFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> 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> 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> event_token consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePicker)->add_TimeChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITimePicker> consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(auto_revoke_t, Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITimePicker>(this, &abi_t<Windows::UI::Xaml::Controls::ITimePicker>::remove_TimeChanged, TimeChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(event_token const& token) const
{
    check_hresult(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::UI::Xaml::Controls::TimePicker consume_Windows_UI_Xaml_Controls_ITimePickerFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::TimePicker instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> event_token consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePickerFlyout, Windows::UI::Xaml::Controls::TimePickedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->add_TimePicked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITimePickerFlyout> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITimePickerFlyout>(this, &abi_t<Windows::UI::Xaml::Controls::ITimePickerFlyout>::remove_TimePicked, TimePicked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked(event_token const& token) const
{
    check_hresult(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>> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITimePickerFlyout)->ShowAtAsync(get_abi(target), put_abi(returnValue)));
    return returnValue;
}

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::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::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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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_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> event_token consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToggleSwitch)->add_Toggled(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IToggleSwitch> consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IToggleSwitch>(this, &abi_t<Windows::UI::Xaml::Controls::IToggleSwitch>::remove_Toggled, Toggled(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->add_Closed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IToolTip> consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IToolTip>(this, &abi_t<Windows::UI::Xaml::Controls::IToolTip>::remove_Closed, Closed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->remove_Closed(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->add_Opened(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IToolTip> consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(auto_revoke_t, Windows::UI::Xaml::RoutedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IToolTip>(this, &abi_t<Windows::UI::Xaml::Controls::IToolTip>::remove_Opened, Opened(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTip)->remove_Opened(get_abi(token)));
}

template <typename D> Windows::UI::Xaml::Controls::ToolTip consume_Windows_UI_Xaml_Controls_IToolTipFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::ToolTip instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->GetPlacement(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->GetPlacementTarget(get_abi(element), put_abi(value)));
    return value;
}

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 value{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IToolTipServiceStatics)->GetToolTip(get_abi(element), put_abi(value)));
    return value;
}

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::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> event_token consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->add_ItemInvoked(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITreeView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITreeView>(this, &abi_t<Windows::UI::Xaml::Controls::ITreeView>::remove_ItemInvoked, ItemInvoked(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->remove_ItemInvoked(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->add_Expanding(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITreeView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITreeView>(this, &abi_t<Windows::UI::Xaml::Controls::ITreeView>::remove_Expanding, Expanding(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->remove_Expanding(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeView)->add_Collapsed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::ITreeView> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::ITreeView>(this, &abi_t<Windows::UI::Xaml::Controls::ITreeView>::remove_Collapsed, Collapsed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed(event_token const& token) const
{
    check_hresult(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_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::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::UI::Xaml::Controls::TreeView consume_Windows_UI_Xaml_Controls_ITreeViewFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::TreeView instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

template <typename D> double consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphOpacity() const
{
    double result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_GlyphOpacity(&result));
    return result;
}

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 result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_GlyphBrush(put_abi(result)));
    return result;
}

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 result{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_GlyphSize(&result));
    return result;
}

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 result{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItem)->get_TreeViewItemTemplateSettings(put_abi(result)));
    return result;
}

template <typename D> Windows::UI::Xaml::Controls::TreeViewItem consume_Windows_UI_Xaml_Controls_ITreeViewItemFactory<D>::CreateInstance(Windows::Foundation::IInspectable const& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::TreeViewItem instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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::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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::TreeViewList instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewListFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::TreeViewNode instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::ITreeViewNodeFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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> 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& outer, Windows::Foundation::IInspectable& inner) const
{
    Windows::UI::Xaml::Controls::UserControl instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IUserControlFactory)->CreateInstance(get_abi(outer), put_abi(inner), put_abi(instance)));
    return instance;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->GetRowSpan(get_abi(element), &value));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics)->GetColumnSpan(get_abi(element), &value));
    return value;
}

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> event_token consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanel)->add_CleanUpVirtualizedItemEvent(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IVirtualizingStackPanel> consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(auto_revoke_t, Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanel>(this, &abi_t<Windows::UI::Xaml::Controls::IVirtualizingStackPanel>::remove_CleanUpVirtualizedItemEvent, CleanUpVirtualizedItemEvent(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(event_token const& token) const
{
    check_hresult(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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->GetVirtualizationMode(get_abi(element), put_abi(value)));
    return value;
}

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 value{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics)->GetIsVirtualizing(get_abi(o), &value));
    return value;
}

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> event_token consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->add_LoadCompleted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView> consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(auto_revoke_t, Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView>::remove_LoadCompleted, LoadCompleted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->remove_LoadCompleted(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(Windows::UI::Xaml::Controls::NotifyEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->add_ScriptNotify(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView> consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(auto_revoke_t, Windows::UI::Xaml::Controls::NotifyEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView>::remove_ScriptNotify, ScriptNotify(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->remove_ScriptNotify(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->add_NavigationFailed(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView> consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(auto_revoke_t, Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView>::remove_NavigationFailed, NavigationFailed(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(event_token const& token) const
{
    check_hresult(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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView)->InvokeScript(get_abi(scriptName), arguments.size(), get_abi(arguments), put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_NavigationStarting(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_NavigationStarting, NavigationStarting(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_NavigationStarting(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_ContentLoading(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_ContentLoading, ContentLoading(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_ContentLoading(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_DOMContentLoaded(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_DOMContentLoaded, DOMContentLoaded(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded(event_token const& token) const
{
    check_hresult(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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->CapturePreviewToStreamAsync(get_abi(stream), put_abi(returnValue)));
    return returnValue;
}

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> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->InvokeScriptAsync(get_abi(scriptName), get_abi(arguments), put_abi(returnValue)));
    return returnValue;
}

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> returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->CaptureSelectedContentToDataPackageAsync(put_abi(returnValue)));
    return returnValue;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->BuildLocalStreamUri(get_abi(contentIdentifier), get_abi(relativePath), put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_NavigationCompleted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_NavigationCompleted, NavigationCompleted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_NavigationCompleted(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameNavigationStarting(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_FrameNavigationStarting, FrameNavigationStarting(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameNavigationStarting(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameContentLoading(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_FrameContentLoading, FrameContentLoading(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameContentLoading(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameDOMContentLoaded(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_FrameDOMContentLoaded, FrameDOMContentLoaded(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameDOMContentLoaded(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_FrameNavigationCompleted(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_FrameNavigationCompleted, FrameNavigationCompleted(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_FrameNavigationCompleted(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_LongRunningScriptDetected(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_LongRunningScriptDetected, LongRunningScriptDetected(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_LongRunningScriptDetected(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_UnsafeContentWarningDisplaying(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_UnsafeContentWarningDisplaying, UnsafeContentWarningDisplaying(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->remove_UnsafeContentWarningDisplaying(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->add_UnviewableContentIdentified(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView2> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView2>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView2>::remove_UnviewableContentIdentified, UnviewableContentIdentified(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified(event_token const& token) const
{
    check_hresult(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 returnValue{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView2)->Focus(get_abi(value), &returnValue));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView3)->add_ContainsFullScreenElementChanged(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView3> consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(auto_revoke_t, Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView3>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView3>::remove_ContainsFullScreenElementChanged, ContainsFullScreenElementChanged(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(event_token const& token) const
{
    check_hresult(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> event_token consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->add_UnsupportedUriSchemeIdentified(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView4> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView4>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView4>::remove_UnsupportedUriSchemeIdentified, UnsupportedUriSchemeIdentified(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->remove_UnsupportedUriSchemeIdentified(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->add_NewWindowRequested(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView4> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView4>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView4>::remove_NewWindowRequested, NewWindowRequested(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->remove_NewWindowRequested(get_abi(token)));
}

template <typename D> event_token consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->add_PermissionRequested(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView4> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView4>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView4>::remove_PermissionRequested, PermissionRequested(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested(event_token const& token) const
{
    check_hresult(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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView4)->DeferredPermissionRequestById(id, put_abi(returnValue)));
    return returnValue;
}

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> event_token consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost(Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> const& value) const
{
    event_token token{};
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView6)->add_SeparateProcessLost(get_abi(value), put_abi(token)));
    return token;
}

template <typename D> event_revoker<Windows::UI::Xaml::Controls::IWebView6> 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& value) const
{
    return impl::make_event_revoker<D, Windows::UI::Xaml::Controls::IWebView6>(this, &abi_t<Windows::UI::Xaml::Controls::IWebView6>::remove_SeparateProcessLost, SeparateProcessLost(value));
}

template <typename D> void consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost(event_token const& token) const
{
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebView6)->remove_SeparateProcessLost(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 instance{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewFactory4)->CreateInstanceWithExecutionMode(get_abi(executionMode), put_abi(instance)));
    return instance;
}

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 returnValue{ nullptr };
    check_hresult(WINRT_SHIM(Windows::UI::Xaml::Controls::IWebViewStatics4)->ClearTemporaryWebDataAsync(put_abi(returnValue)));
    return returnValue;
}

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> 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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::BackClickEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarView const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::DragItemsStartingEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::HubSectionHeaderClickEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::ItemClickEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* item, HSTRING* returnValue) noexcept final
        {
            try
            {
                *returnValue = detach_from<hstring>((*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
                return S_OK;
            }
            catch (...)
            {
            *returnValue = 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)) {}

        HRESULT __stdcall Invoke(HSTRING key, void** returnValue) noexcept final
        {
            try
            {
                *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::IInspectable>>((*this)(*reinterpret_cast<hstring const*>(&key)));
                return S_OK;
            }
            catch (...)
            {
            *returnValue = 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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::NotifyEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::SectionsInViewChangedEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::SelectionChangedEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::TextChangedEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::TextControlPasteEventArgs const*>(&e));
                return S_OK;
            }
            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)) {}

        HRESULT __stdcall Invoke(void* sender, void* e) noexcept final
        {
            try
            {
                (*this)(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::WebViewNavigationFailedEventArgs const*>(&e));
                return S_OK;
            }
            catch (...)
            {
                return to_hresult();
            }
        }
    };
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBar> : produce_base<D, Windows::UI::Xaml::Controls::IAppBar>
{
    HRESULT __stdcall get_IsOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOpen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOpen(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSticky(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSticky());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSticky(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSticky(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Opened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Opened(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Opened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Closed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Closed(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Closed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBar2> : produce_base<D, Windows::UI::Xaml::Controls::IAppBar2>
{
    HRESULT __stdcall get_ClosedDisplayMode(Windows::UI::Xaml::Controls::AppBarClosedDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBarClosedDisplayMode>(this->shim().ClosedDisplayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ClosedDisplayMode(Windows::UI::Xaml::Controls::AppBarClosedDisplayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClosedDisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::AppBarClosedDisplayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBar3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBar3>
{
    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Opening(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Opening(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Opening(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opening(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Closing(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Closing(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Closing(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closing(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBar4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBar4>
{
    HRESULT __stdcall get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarButton> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButton>
{
    HRESULT __stdcall get_Label(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Label());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Label(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Label(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarButton3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButton3>
{
    HRESULT __stdcall get_LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarLabelPosition>(this->shim().LabelPosition());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LabelPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarLabelPosition const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarButton4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButton4>
{
    HRESULT __stdcall get_KeyboardAcceleratorTextOverride(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_KeyboardAcceleratorTextOverride(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarButton5> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButton5>
{
    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButtonFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::AppBarButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics>
{
    HRESULT __stdcall get_LabelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsCompactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>
{
    HRESULT __stdcall get_LabelPositionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelPositionProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsInOverflowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarButtonStatics4>
{
    HRESULT __stdcall get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().KeyboardAcceleratorTextOverrideProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarFactory> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::AppBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarOverrides>
{
    HRESULT __stdcall OnClosed(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnClosed(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnOpened(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOpened(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarOverrides3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarOverrides3>
{
    HRESULT __stdcall OnClosing(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnClosing(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnOpening(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOpening(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::AppBarSeparator>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics>
{
    HRESULT __stdcall get_IsCompactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>
{
    HRESULT __stdcall get_IsInOverflowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarStatics>
{
    HRESULT __stdcall get_IsOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsStickyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStickyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarStatics2>
{
    HRESULT __stdcall get_ClosedDisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClosedDisplayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarStatics4>
{
    HRESULT __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButton> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButton>
{
    HRESULT __stdcall get_Label(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Label());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Label(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Label(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButton3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButton3>
{
    HRESULT __stdcall get_LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarLabelPosition>(this->shim().LabelPosition());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LabelPosition(Windows::UI::Xaml::Controls::CommandBarLabelPosition value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LabelPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarLabelPosition const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButton4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButton4>
{
    HRESULT __stdcall get_KeyboardAcceleratorTextOverride(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_KeyboardAcceleratorTextOverride(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButton5> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButton5>
{
    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::AppBarToggleButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>
{
    HRESULT __stdcall get_LabelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsCompactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>
{
    HRESULT __stdcall get_LabelPositionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LabelPositionProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsInOverflowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4>
{
    HRESULT __stdcall get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().KeyboardAcceleratorTextOverrideProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBox> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBox>
{
    HRESULT __stdcall get_MaxSuggestionListHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxSuggestionListHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxSuggestionListHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxSuggestionListHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSuggestionListOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSuggestionListOpen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSuggestionListOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSuggestionListOpen(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextMemberPath(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().TextMemberPath());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextMemberPath(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextMemberPath(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Text(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Text(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_UpdateTextOnSelect(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().UpdateTextOnSelect());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_UpdateTextOnSelect(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UpdateTextOnSelect(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AutoMaximizeSuggestionArea(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AutoMaximizeSuggestionArea());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AutoMaximizeSuggestionArea(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoMaximizeSuggestionArea(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextBoxStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().TextBoxStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextBoxStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextBoxStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SuggestionChosen(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SuggestionChosen(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SuggestionChosen(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SuggestionChosen(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TextChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBox2> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBox2>
{
    HRESULT __stdcall get_QueryIcon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().QueryIcon());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_QueryIcon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QueryIcon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_QuerySubmitted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().QuerySubmitted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::AutoSuggestBox, Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_QuerySubmitted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QuerySubmitted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBox3> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBox3>
{
    HRESULT __stdcall get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs>
{
    HRESULT __stdcall get_QueryText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ChosenSuggestion(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ChosenSuggestion());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>
{
    HRESULT __stdcall get_MaxSuggestionListHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxSuggestionListHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSuggestionListOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSuggestionListOpenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextMemberPathProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextMemberPathProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_UpdateTextOnSelectProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UpdateTextOnSelectProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AutoMaximizeSuggestionAreaProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoMaximizeSuggestionAreaProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextBoxStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextBoxStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2>
{
    HRESULT __stdcall get_QueryIconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().QueryIconProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3>
{
    HRESULT __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs>
{
    HRESULT __stdcall get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>
{
    HRESULT __stdcall get_Reason(Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason>(this->shim().Reason());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Reason(Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Reason(*reinterpret_cast<Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall CheckCurrent(bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().CheckCurrent());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics> : produce_base<D, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics>
{
    HRESULT __stdcall get_ReasonProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ReasonProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBackClickEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IBackClickEventArgs>
{
    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBitmapIcon> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIcon>
{
    HRESULT __stdcall get_UriSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().UriSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_UriSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UriSource(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBitmapIcon2> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIcon2>
{
    HRESULT __stdcall get_ShowAsMonochrome(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowAsMonochrome());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ShowAsMonochrome(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAsMonochrome(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconFactory> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::BitmapIcon>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconSource> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconSource>
{
    HRESULT __stdcall get_UriSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().UriSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_UriSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UriSource(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ShowAsMonochrome(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowAsMonochrome());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ShowAsMonochrome(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAsMonochrome(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconSourceFactory> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::BitmapIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconSourceStatics> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>
{
    HRESULT __stdcall get_UriSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UriSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ShowAsMonochromeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAsMonochromeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconStatics> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconStatics>
{
    HRESULT __stdcall get_UriSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UriSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBitmapIconStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IBitmapIconStatics2>
{
    HRESULT __stdcall get_ShowAsMonochromeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAsMonochromeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBorder> : produce_base<D, Windows::UI::Xaml::Controls::IBorder>
{
    HRESULT __stdcall get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Child(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Child());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Child(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Child(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ChildTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ChildTransitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ChildTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChildTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IBorderStatics> : produce_base<D, Windows::UI::Xaml::Controls::IBorderStatics>
{
    HRESULT __stdcall get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ChildTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildTransitionsProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Button>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout>
{
    HRESULT __stdcall get_FlyoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FlyoutProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IButtonWithFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IButtonWithFlyout>
{
    HRESULT __stdcall get_Flyout(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().Flyout());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Flyout(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Flyout(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePicker> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePicker>
{
    HRESULT __stdcall get_Date(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().Date());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Date(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Date(*reinterpret_cast<Windows::Foundation::IReference<Windows::Foundation::DateTime> const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsCalendarOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCalendarOpen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsCalendarOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCalendarOpen(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DateFormat(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DateFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DateFormat(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DateFormat(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarViewStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CalendarViewStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarViewStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinDate(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxDate(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTodayHighlighted(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTodayHighlighted());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTodayHighlighted(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTodayHighlighted(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDisplayMode>(this->shim().DisplayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewDisplayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstDayOfWeek(Windows::Globalization::DayOfWeek* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Globalization::DayOfWeek>(this->shim().FirstDayOfWeek());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstDayOfWeek(Windows::Globalization::DayOfWeek value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstDayOfWeek(*reinterpret_cast<Windows::Globalization::DayOfWeek const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayOfWeekFormat(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayOfWeekFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayOfWeekFormat(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayOfWeekFormat(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarIdentifier(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarIdentifier(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsOutOfScopeEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOutOfScopeEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsOutOfScopeEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOutOfScopeEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsGroupLabelVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGroupLabelVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsGroupLabelVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsGroupLabelVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CalendarViewDayItemChanging(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CalendarViewDayItemChanging(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CalendarViewDayItemChanging(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewDayItemChanging(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DateChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DateChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarDatePicker, Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DateChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DateChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Opened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Opened(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Opened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Closed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Closed(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Closed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetDisplayDate(Windows::Foundation::DateTime date) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDisplayDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&date));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetYearDecadeDisplayDimensions(columns, rows);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePicker2> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePicker2>
{
    HRESULT __stdcall get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs>
{
    HRESULT __stdcall get_NewDate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().NewDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OldDate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<Windows::Foundation::DateTime>>(this->shim().OldDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePickerFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::CalendarDatePicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>
{
    HRESULT __stdcall get_DateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsCalendarOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCalendarOpenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DateFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarViewStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarViewStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinDateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinDateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxDateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTodayHighlightedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTodayHighlightedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstDayOfWeekProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstDayOfWeekProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayOfWeekFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayOfWeekFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsOutOfScopeEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOutOfScopeEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsGroupLabelVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupLabelVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2>
{
    HRESULT __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarView> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarView>
{
    HRESULT __stdcall get_CalendarIdentifier(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarIdentifier(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayOfWeekFormat(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayOfWeekFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayOfWeekFormat(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayOfWeekFormat(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsGroupLabelVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGroupLabelVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsGroupLabelVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsGroupLabelVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDisplayMode>(this->shim().DisplayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DisplayMode(Windows::UI::Xaml::Controls::CalendarViewDisplayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewDisplayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstDayOfWeek(Windows::Globalization::DayOfWeek* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Globalization::DayOfWeek>(this->shim().FirstDayOfWeek());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstDayOfWeek(Windows::Globalization::DayOfWeek value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstDayOfWeek(*reinterpret_cast<Windows::Globalization::DayOfWeek const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsOutOfScopeEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOutOfScopeEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsOutOfScopeEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOutOfScopeEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTodayHighlighted(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTodayHighlighted());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTodayHighlighted(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTodayHighlighted(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxDate(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinDate(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NumberOfWeeksInView(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().NumberOfWeeksInView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_NumberOfWeeksInView(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NumberOfWeeksInView(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedDates(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::DateTime>>(this->shim().SelectedDates());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionMode(Windows::UI::Xaml::Controls::CalendarViewSelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewSelectionMode>(this->shim().SelectionMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionMode(Windows::UI::Xaml::Controls::CalendarViewSelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::CalendarViewSelectionMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FocusBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().FocusBorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FocusBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedHoverBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedHoverBorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedHoverBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedHoverBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedPressedBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedPressedBorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedPressedBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedPressedBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedBorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HoverBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().HoverBorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HoverBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HoverBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PressedBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PressedBorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PressedBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PressedBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarItemBorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemBorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarItemBorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemBorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OutOfScopeBackground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopeBackground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OutOfScopeBackground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OutOfScopeBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarItemBackground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemBackground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarItemBackground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PressedForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PressedForeground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PressedForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PressedForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TodayForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().TodayForeground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TodayForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BlackoutForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BlackoutForeground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BlackoutForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BlackoutForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedForeground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OutOfScopeForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopeForeground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OutOfScopeForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OutOfScopeForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarItemForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemForeground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarItemForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayItemFontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().DayItemFontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayItemFontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayItemFontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DayItemFontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayItemFontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayItemFontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().DayItemFontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayItemFontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayItemFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().DayItemFontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayItemFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TodayFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().TodayFontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TodayFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfMonthLabelFontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FirstOfMonthLabelFontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstOfMonthLabelFontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfMonthLabelFontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FirstOfMonthLabelFontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstOfMonthLabelFontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfMonthLabelFontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FirstOfMonthLabelFontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstOfMonthLabelFontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfMonthLabelFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FirstOfMonthLabelFontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstOfMonthLabelFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthYearItemFontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().MonthYearItemFontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MonthYearItemFontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthYearItemFontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MonthYearItemFontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MonthYearItemFontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthYearItemFontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().MonthYearItemFontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MonthYearItemFontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthYearItemFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().MonthYearItemFontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MonthYearItemFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfYearDecadeLabelFontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FirstOfYearDecadeLabelFontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstOfYearDecadeLabelFontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfYearDecadeLabelFontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FirstOfYearDecadeLabelFontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstOfYearDecadeLabelFontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfYearDecadeLabelFontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FirstOfYearDecadeLabelFontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstOfYearDecadeLabelFontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfYearDecadeLabelFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FirstOfYearDecadeLabelFontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FirstOfYearDecadeLabelFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalDayItemAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalDayItemAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalDayItemAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalDayItemAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalDayItemAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalDayItemAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalDayItemAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalDayItemAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalFirstOfMonthLabelAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalFirstOfMonthLabelAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalFirstOfMonthLabelAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalFirstOfMonthLabelAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalFirstOfMonthLabelAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalFirstOfMonthLabelAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalFirstOfMonthLabelAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalFirstOfMonthLabelAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarItemBorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().CalendarItemBorderThickness());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarItemBorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemBorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarViewDayItemStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CalendarViewDayItemStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarViewDayItemStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewDayItemStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CalendarViewDayItemChanging(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CalendarViewDayItemChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CalendarViewDayItemChanging(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewDayItemChanging(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SelectedDatesChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SelectedDatesChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SelectedDatesChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedDatesChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetDisplayDate(Windows::Foundation::DateTime date) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDisplayDate(*reinterpret_cast<Windows::Foundation::DateTime const*>(&date));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetYearDecadeDisplayDimensions(columns, rows);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewDayItem> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewDayItem>
{
    HRESULT __stdcall get_IsBlackout(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsBlackout());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsBlackout(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsBlackout(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Date(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().Date());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetDensityColors(void* colors) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDensityColors(*reinterpret_cast<Windows::Foundation::Collections::IIterable<Windows::UI::Color> const*>(&colors));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>
{
    HRESULT __stdcall get_InRecycleQueue(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().InRecycleQueue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CalendarViewDayItem>(this->shim().Item());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Phase(uint32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Phase());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RegisterUpdateCallback(void* callback) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const*>(&callback));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RegisterUpdateCallbackWithPhase(uint32_t callbackPhase, void* callback) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(callbackPhase, *reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const*>(&callback));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::CalendarViewDayItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>
{
    HRESULT __stdcall get_IsBlackoutProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsBlackoutProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::CalendarView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs>
{
    HRESULT __stdcall get_AddedDates(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime>>(this->shim().AddedDates());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RemovedDates(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::Foundation::DateTime>>(this->shim().RemovedDates());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICalendarViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICalendarViewStatics>
{
    HRESULT __stdcall get_CalendarIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayOfWeekFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayOfWeekFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsGroupLabelVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupLabelVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstDayOfWeekProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstDayOfWeekProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsOutOfScopeEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOutOfScopeEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTodayHighlightedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTodayHighlightedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxDateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinDateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinDateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NumberOfWeeksInViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NumberOfWeeksInViewProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedDatesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedDatesProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettingsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FocusBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FocusBorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedHoverBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedHoverBorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedPressedBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedPressedBorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HoverBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HoverBorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PressedBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PressedBorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarItemBorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OutOfScopeBackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopeBackgroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarItemBackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBackgroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PressedForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PressedForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TodayForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TodayForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BlackoutForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BlackoutForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OutOfScopeForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopeForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarItemForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayItemFontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayItemFontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayItemFontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayItemFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TodayFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TodayFontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfMonthLabelFontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfMonthLabelFontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfMonthLabelFontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfMonthLabelFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthYearItemFontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthYearItemFontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthYearItemFontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthYearItemFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfYearDecadeLabelFontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfYearDecadeLabelFontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfYearDecadeLabelFontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstOfYearDecadeLabelFontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalDayItemAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalDayItemAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalDayItemAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalDayItemAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalFirstOfMonthLabelAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalFirstOfMonthLabelAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalFirstOfMonthLabelAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalFirstOfMonthLabelAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarItemBorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBorderThicknessProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarViewDayItemStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarViewDayItemStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs>
{
    HRESULT __stdcall get_Bounds(Windows::Foundation::Rect* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Rect>(this->shim().Bounds());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Canvas>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICanvasStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICanvasStatics>
{
    HRESULT __stdcall get_LeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetLeft(void* element, double* length) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *length = detach_from<double>(this->shim().GetLeft(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetLeft(void* element, double length) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLeft(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), length);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TopProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetTop(void* element, double* length) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *length = detach_from<double>(this->shim().GetTop(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetTop(void* element, double length) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetTop(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), length);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZIndexProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetZIndex(void* element, int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GetZIndex(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetZIndex(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetZIndex(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICaptureElement> : produce_base<D, Windows::UI::Xaml::Controls::ICaptureElement>
{
    HRESULT __stdcall get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Capture::MediaCapture>(this->shim().Source());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::Media::Capture::MediaCapture const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICaptureElementStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICaptureElementStatics>
{
    HRESULT __stdcall get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::CheckBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>
{
    HRESULT __stdcall get_GroupHeaderContainer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewBaseHeaderItem>(this->shim().GroupHeaderContainer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GroupHeaderContainer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupHeaderContainer(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewBaseHeaderItem const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GroupIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GroupIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Group(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Group());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>
{
    HRESULT __stdcall get_ItemIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().ItemIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemContainer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SelectorItem>(this->shim().ItemContainer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemContainer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainer(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SelectorItem const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsContainerPrepared(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContainerPrepared());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsContainerPrepared(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsContainerPrepared(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>
{
    HRESULT __stdcall get_Value(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Value());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_UIElement(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().UIElement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IColorChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IColorChangedEventArgs>
{
    HRESULT __stdcall get_OldColor(struct struct_Windows_UI_Color* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Color>(this->shim().OldColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NewColor(struct struct_Windows_UI_Color* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Color>(this->shim().NewColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IColorPicker> : produce_base<D, Windows::UI::Xaml::Controls::IColorPicker>
{
    HRESULT __stdcall get_Color(struct struct_Windows_UI_Color* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Color>(this->shim().Color());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Color(struct struct_Windows_UI_Color value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Color(*reinterpret_cast<Windows::UI::Color const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreviousColor(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::Foundation::IReference<Windows::UI::Color>>(this->shim().PreviousColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PreviousColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreviousColor(*reinterpret_cast<Windows::Foundation::IReference<Windows::UI::Color> const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsAlphaEnabled(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsAlphaEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsAlphaEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsAlphaEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorSpectrumVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsColorSpectrumVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsColorSpectrumVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorSpectrumVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorPreviewVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsColorPreviewVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsColorPreviewVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorPreviewVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorSliderVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsColorSliderVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsColorSliderVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorSliderVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsAlphaSliderVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsAlphaSliderVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsAlphaSliderVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsAlphaSliderVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsMoreButtonVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsMoreButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsMoreButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsMoreButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorChannelTextInputVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsColorChannelTextInputVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsColorChannelTextInputVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorChannelTextInputVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsAlphaTextInputVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsAlphaTextInputVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsAlphaTextInputVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsAlphaTextInputVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHexInputVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsHexInputVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsHexInputVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHexInputVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinHue(int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().MinHue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinHue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinHue(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxHue(int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().MaxHue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxHue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxHue(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinSaturation(int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().MinSaturation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinSaturation(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinSaturation(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxSaturation(int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().MaxSaturation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxSaturation(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxSaturation(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinValue(int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().MinValue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinValue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinValue(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxValue(int32_t* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().MaxValue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxValue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxValue(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColorSpectrumShape(Windows::UI::Xaml::Controls::ColorSpectrumShape* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ColorSpectrumShape>(this->shim().ColorSpectrumShape());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ColorSpectrumShape(Windows::UI::Xaml::Controls::ColorSpectrumShape value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColorSpectrumShape(*reinterpret_cast<Windows::UI::Xaml::Controls::ColorSpectrumShape const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColorSpectrumComponents(Windows::UI::Xaml::Controls::ColorSpectrumComponents* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::ColorSpectrumComponents>(this->shim().ColorSpectrumComponents());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ColorSpectrumComponents(Windows::UI::Xaml::Controls::ColorSpectrumComponents value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColorSpectrumComponents(*reinterpret_cast<Windows::UI::Xaml::Controls::ColorSpectrumComponents const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ColorChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ColorChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ColorPicker, Windows::UI::Xaml::Controls::ColorChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ColorChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColorChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IColorPickerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IColorPickerFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ColorPicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IColorPickerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IColorPickerStatics>
{
    HRESULT __stdcall get_ColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreviousColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreviousColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsAlphaEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorSpectrumVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorSpectrumVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorPreviewVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorPreviewVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorSliderVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorSliderVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsAlphaSliderVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaSliderVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsMoreButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsMoreButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorChannelTextInputVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorChannelTextInputVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsAlphaTextInputVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaTextInputVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHexInputVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHexInputVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinHueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinHueProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxHueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHueProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinSaturationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinSaturationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxSaturationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxSaturationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinValueProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxValueProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColorSpectrumShapeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColorSpectrumShapeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColorSpectrumComponentsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColorSpectrumComponentsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IColumnDefinition> : produce_base<D, Windows::UI::Xaml::Controls::IColumnDefinition>
{
    HRESULT __stdcall get_Width(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::GridLength>(this->shim().Width());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Width(struct struct_Windows_UI_Xaml_GridLength value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Width(*reinterpret_cast<Windows::UI::Xaml::GridLength const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxWidth(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinWidth(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ActualWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ActualWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IColumnDefinitionStatics> : produce_base<D, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>
{
    HRESULT __stdcall get_WidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().WidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBox> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox>
{
    HRESULT __stdcall get_IsDropDownOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDropDownOpen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsDropDownOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDropDownOpen(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsEditable(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsEditable());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSelectionBoxHighlighted(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSelectionBoxHighlighted());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxDropDownHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxDropDownHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxDropDownHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxDropDownHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionBoxItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectionBoxItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionBoxItemTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().SelectionBoxItemTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DropDownClosed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DropDownClosed(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DropDownClosed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DropDownClosed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DropDownOpened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DropDownOpened(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DropDownOpened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DropDownOpened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBox2> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox2>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBox3> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox3>
{
    HRESULT __stdcall get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextSearchEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextSearchEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextSearchEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextSearchEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBox4> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox4>
{
    HRESULT __stdcall get_SelectionChangedTrigger(Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger>(this->shim().SelectionChangedTrigger());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionChangedTrigger(Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChangedTrigger(*reinterpret_cast<Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBox5> : produce_base<D, Windows::UI::Xaml::Controls::IComboBox5>
{
    HRESULT __stdcall get_PlaceholderForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PlaceholderForeground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ComboBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ComboBoxItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBoxOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxOverrides>
{
    HRESULT __stdcall OnDropDownClosed(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDropDownClosed(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnDropDownOpened(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDropDownOpened(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics>
{
    HRESULT __stdcall get_IsDropDownOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDropDownOpenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxDropDownHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDropDownHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics2>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics3>
{
    HRESULT __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextSearchEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSearchEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics4>
{
    HRESULT __stdcall get_SelectionChangedTriggerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionChangedTriggerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IComboBoxStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IComboBoxStatics5>
{
    HRESULT __stdcall get_PlaceholderForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICommandBar> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBar>
{
    HRESULT __stdcall get_PrimaryCommands(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().PrimaryCommands());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryCommands(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().SecondaryCommands());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICommandBar2> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBar2>
{
    HRESULT __stdcall get_CommandBarOverflowPresenterStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CommandBarOverflowPresenterStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CommandBarOverflowPresenterStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandBarOverflowPresenterStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CommandBarTemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings>(this->shim().CommandBarTemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICommandBar3> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBar3>
{
    HRESULT __stdcall get_DefaultLabelPosition(Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition>(this->shim().DefaultLabelPosition());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DefaultLabelPosition(Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultLabelPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OverflowButtonVisibility(Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility>(this->shim().OverflowButtonVisibility());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OverflowButtonVisibility(Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowButtonVisibility(*reinterpret_cast<Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsDynamicOverflowEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDynamicOverflowEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsDynamicOverflowEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDynamicOverflowEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DynamicOverflowItemsChanging(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DynamicOverflowItemsChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::CommandBar, Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DynamicOverflowItemsChanging(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DynamicOverflowItemsChanging(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICommandBarElement> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarElement>
{
    HRESULT __stdcall get_IsCompact(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompact());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsCompact(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompact(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICommandBarElement2> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarElement2>
{
    HRESULT __stdcall get_IsInOverflow(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsInOverflow());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DynamicOverflowOrder(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().DynamicOverflowOrder());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DynamicOverflowOrder(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DynamicOverflowOrder(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICommandBarFactory> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::CommandBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::CommandBarOverflowPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICommandBarStatics> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarStatics>
{
    HRESULT __stdcall get_PrimaryCommandsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryCommandsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryCommandsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryCommandsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICommandBarStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarStatics2>
{
    HRESULT __stdcall get_CommandBarOverflowPresenterStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandBarOverflowPresenterStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ICommandBarStatics3> : produce_base<D, Windows::UI::Xaml::Controls::ICommandBarStatics3>
{
    HRESULT __stdcall get_DefaultLabelPositionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultLabelPositionProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OverflowButtonVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowButtonVisibilityProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsDynamicOverflowEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDynamicOverflowEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>
{
    HRESULT __stdcall get_ItemContainer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SelectorItem>(this->shim().ItemContainer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InRecycleQueue(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().InRecycleQueue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().ItemIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Phase(uint32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Phase());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RegisterUpdateCallback(void* callback) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const*>(&callback));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RegisterUpdateCallbackWithPhase(uint32_t callbackPhase, void* callback) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(callbackPhase, *reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const*>(&callback));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentControl> : produce_base<D, Windows::UI::Xaml::Controls::IContentControl>
{
    HRESULT __stdcall get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Content());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ContentTemplateSelector());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ContentTransitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentControl2> : produce_base<D, Windows::UI::Xaml::Controls::IContentControl2>
{
    HRESULT __stdcall get_ContentTemplateRoot(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ContentTemplateRoot());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IContentControlFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ContentControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentControlOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IContentControlOverrides>
{
    HRESULT __stdcall OnContentChanged(void* oldContent, void* newContent) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&newContent));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnContentTemplateChanged(void* oldContentTemplate, void* newContentTemplate) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateChanged(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&oldContentTemplate), *reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&newContentTemplate));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnContentTemplateSelectorChanged(void* oldContentTemplateSelector, void* newContentTemplateSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&oldContentTemplateSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&newContentTemplateSelector));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IContentControlStatics>
{
    HRESULT __stdcall get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplateSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateSelectorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTransitionsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialog> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialog>
{
    HRESULT __stdcall get_Title(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Title());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Title(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TitleTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().TitleTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TitleTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TitleTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FullSizeDesired(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().FullSizeDesired());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FullSizeDesired(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FullSizeDesired(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PrimaryButtonText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PrimaryButtonText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PrimaryButtonText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryButtonText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SecondaryButtonText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SecondaryButtonText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PrimaryButtonCommand(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().PrimaryButtonCommand());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PrimaryButtonCommand(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonCommand(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryButtonCommand(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().SecondaryButtonCommand());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SecondaryButtonCommand(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonCommand(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PrimaryButtonCommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().PrimaryButtonCommandParameter());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PrimaryButtonCommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonCommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryButtonCommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SecondaryButtonCommandParameter());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SecondaryButtonCommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonCommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPrimaryButtonEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPrimaryButtonEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsPrimaryButtonEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPrimaryButtonEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSecondaryButtonEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSecondaryButtonEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSecondaryButtonEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSecondaryButtonEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Closing(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Closing(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Closing(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closing(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Closed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Closed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Closed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Opened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Opened(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Opened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PrimaryButtonClick(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PrimaryButtonClick(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PrimaryButtonClick(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonClick(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SecondaryButtonClick(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SecondaryButtonClick(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SecondaryButtonClick(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonClick(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Hide() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Hide();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ShowAsync(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult>>(this->shim().ShowAsync());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialog2> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialog2>
{
    HRESULT __stdcall get_CloseButtonText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CloseButtonText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CloseButtonText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CloseButtonCommand(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().CloseButtonCommand());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CloseButtonCommand(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonCommand(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CloseButtonCommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CloseButtonCommandParameter());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CloseButtonCommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonCommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PrimaryButtonStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().PrimaryButtonStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PrimaryButtonStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryButtonStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().SecondaryButtonStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SecondaryButtonStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CloseButtonStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().CloseButtonStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CloseButtonStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DefaultButton(Windows::UI::Xaml::Controls::ContentDialogButton* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialogButton>(this->shim().DefaultButton());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DefaultButton(Windows::UI::Xaml::Controls::ContentDialogButton value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultButton(*reinterpret_cast<Windows::UI::Xaml::Controls::ContentDialogButton const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CloseButtonClick(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CloseButtonClick(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CloseButtonClick(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonClick(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialog3> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialog3>
{
    HRESULT __stdcall ShowAsyncWithPlacement(Windows::UI::Xaml::Controls::ContentDialogPlacement placement, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Controls::ContentDialogResult>>(this->shim().ShowAsync(*reinterpret_cast<Windows::UI::Xaml::Controls::ContentDialogPlacement const*>(&placement)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral>
{
    HRESULT __stdcall Complete() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Complete();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>
{
    HRESULT __stdcall get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetDeferral(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral>(this->shim().GetDeferral());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs>
{
    HRESULT __stdcall get_Result(Windows::UI::Xaml::Controls::ContentDialogResult* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialogResult>(this->shim().Result());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialogClosingDeferral> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogClosingDeferral>
{
    HRESULT __stdcall Complete() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Complete();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>
{
    HRESULT __stdcall get_Result(Windows::UI::Xaml::Controls::ContentDialogResult* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentDialogResult>(this->shim().Result());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetDeferral(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::ContentDialogClosingDeferral>(this->shim().GetDeferral());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialogFactory> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ContentDialog>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_TitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TitleTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FullSizeDesiredProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FullSizeDesiredProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PrimaryButtonTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryButtonTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PrimaryButtonCommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonCommandProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryButtonCommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonCommandProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PrimaryButtonCommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonCommandParameterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryButtonCommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonCommandParameterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPrimaryButtonEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPrimaryButtonEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSecondaryButtonEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSecondaryButtonEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentDialogStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IContentDialogStatics2>
{
    HRESULT __stdcall get_CloseButtonTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CloseButtonCommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonCommandProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CloseButtonCommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonCommandParameterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PrimaryButtonStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryButtonStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CloseButtonStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DefaultButtonProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultButtonProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>
{
    HRESULT __stdcall get_ChangeKind(Windows::UI::Xaml::Controls::ContentLinkChangeKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ContentLinkChangeKind>(this->shim().ChangeKind());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentLinkInfo(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::ContentLinkInfo>(this->shim().ContentLinkInfo());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextRange(struct struct_Windows_UI_Xaml_Documents_TextRange* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextRange>(this->shim().TextRange());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenter>
{
    HRESULT __stdcall get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Content());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ContentTemplateSelector());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ContentTransitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStretch(Windows::UI::Text::FontStretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStretch(Windows::UI::Text::FontStretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterSpacing(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CharacterSpacing(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenter2> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenter2>
{
    HRESULT __stdcall get_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpticalMarginAlignment(*reinterpret_cast<Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextLineBounds(Windows::UI::Xaml::TextLineBounds* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextLineBounds(Windows::UI::Xaml::TextLineBounds value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextLineBounds(*reinterpret_cast<Windows::UI::Xaml::TextLineBounds const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenter3> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenter3>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenter4> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenter4>
{
    HRESULT __stdcall get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLines(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxLines(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineStackingStrategy(*reinterpret_cast<Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().LineHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LineHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalContentAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalContentAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ContentPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterOverrides>
{
    HRESULT __stdcall OnContentTemplateChanged(void* oldContentTemplate, void* newContentTemplate) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateChanged(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&oldContentTemplate), *reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&newContentTemplate));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnContentTemplateSelectorChanged(void* oldContentTemplateSelector, void* newContentTemplateSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&oldContentTemplateSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&newContentTemplateSelector));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterStatics> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterStatics>
{
    HRESULT __stdcall get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplateSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateSelectorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTransitionsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterStatics2>
{
    HRESULT __stdcall get_OpticalMarginAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextLineBoundsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterStatics3>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContentPresenterStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IContentPresenterStatics4>
{
    HRESULT __stdcall get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLinesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineStackingStrategyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalContentAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalContentAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalContentAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalContentAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IContextMenuEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IContextMenuEventArgs>
{
    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CursorLeft(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CursorLeft());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CursorTop(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CursorTop());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControl> : produce_base<D, Windows::UI::Xaml::Controls::IControl>
{
    HRESULT __stdcall get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStretch(Windows::UI::Text::FontStretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStretch(Windows::UI::Text::FontStretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterSpacing(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CharacterSpacing(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTabStop(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTabStop());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTabStop(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTabStop(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TabIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().TabIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TabIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TabIndex(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TabNavigation(Windows::UI::Xaml::Input::KeyboardNavigationMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::KeyboardNavigationMode>(this->shim().TabNavigation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TabNavigation(Windows::UI::Xaml::Input::KeyboardNavigationMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TabNavigation(*reinterpret_cast<Windows::UI::Xaml::Input::KeyboardNavigationMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Template(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ControlTemplate>(this->shim().Template());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Template(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Template(*reinterpret_cast<Windows::UI::Xaml::Controls::ControlTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalContentAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalContentAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalContentAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalContentAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalContentAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FocusState(Windows::UI::Xaml::FocusState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::FocusState>(this->shim().FocusState());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_IsEnabledChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().IsEnabledChanged(*reinterpret_cast<Windows::UI::Xaml::DependencyPropertyChangedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_IsEnabledChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsEnabledChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ApplyTemplate(bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().ApplyTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Focus(Windows::UI::Xaml::FocusState value, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControl2> : produce_base<D, Windows::UI::Xaml::Controls::IControl2>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControl3> : produce_base<D, Windows::UI::Xaml::Controls::IControl3>
{
    HRESULT __stdcall get_UseSystemFocusVisuals(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().UseSystemFocusVisuals());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_UseSystemFocusVisuals(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UseSystemFocusVisuals(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControl4> : produce_base<D, Windows::UI::Xaml::Controls::IControl4>
{
    HRESULT __stdcall get_IsFocusEngagementEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFocusEngagementEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFocusEngagementEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFocusEngagementEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFocusEngaged(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFocusEngaged());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFocusEngaged(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFocusEngaged(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RequiresPointer(Windows::UI::Xaml::Controls::RequiresPointer* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RequiresPointer>(this->shim().RequiresPointer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_RequiresPointer(Windows::UI::Xaml::Controls::RequiresPointer value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RequiresPointer(*reinterpret_cast<Windows::UI::Xaml::Controls::RequiresPointer const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusLeft(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusLeft());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_XYFocusLeft(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusLeft(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusRight(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusRight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_XYFocusRight(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusRight(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusUp(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusUp());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_XYFocusUp(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusUp(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusDown(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusDown());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_XYFocusDown(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusDown(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ElementSoundMode(Windows::UI::Xaml::ElementSoundMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::ElementSoundMode>(this->shim().ElementSoundMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ElementSoundMode(Windows::UI::Xaml::ElementSoundMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ElementSoundMode(*reinterpret_cast<Windows::UI::Xaml::ElementSoundMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_FocusEngaged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().FocusEngaged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusEngagedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_FocusEngaged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusEngaged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_FocusDisengaged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().FocusDisengaged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_FocusDisengaged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusDisengaged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RemoveFocusEngagement() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveFocusEngagement();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControl5> : produce_base<D, Windows::UI::Xaml::Controls::IControl5>
{
    HRESULT __stdcall get_DefaultStyleResourceUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().DefaultStyleResourceUri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DefaultStyleResourceUri(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultStyleResourceUri(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IControlFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Control>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IControlOverrides>
{
    HRESULT __stdcall OnPointerEntered(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerEntered(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnPointerPressed(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerPressed(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnPointerMoved(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerMoved(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnPointerReleased(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerReleased(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnPointerExited(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerExited(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnPointerCaptureLost(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerCaptureLost(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnPointerCanceled(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerCanceled(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnPointerWheelChanged(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerWheelChanged(*reinterpret_cast<Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnTapped(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnTapped(*reinterpret_cast<Windows::UI::Xaml::Input::TappedRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnDoubleTapped(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDoubleTapped(*reinterpret_cast<Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnHolding(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnHolding(*reinterpret_cast<Windows::UI::Xaml::Input::HoldingRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnRightTapped(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnRightTapped(*reinterpret_cast<Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnManipulationStarting(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationStarting(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnManipulationInertiaStarting(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationInertiaStarting(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnManipulationStarted(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationStarted(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnManipulationDelta(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationDelta(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnManipulationCompleted(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationCompleted(*reinterpret_cast<Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnKeyUp(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnKeyUp(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnKeyDown(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnKeyDown(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnGotFocus(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnGotFocus(*reinterpret_cast<Windows::UI::Xaml::RoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnLostFocus(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnLostFocus(*reinterpret_cast<Windows::UI::Xaml::RoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnDragEnter(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDragEnter(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnDragLeave(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDragLeave(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnDragOver(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDragOver(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnDrop(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDrop(*reinterpret_cast<Windows::UI::Xaml::DragEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlOverrides6> : produce_base<D, Windows::UI::Xaml::Controls::IControlOverrides6>
{
    HRESULT __stdcall OnPreviewKeyDown(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPreviewKeyDown(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnPreviewKeyUp(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPreviewKeyUp(*reinterpret_cast<Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnCharacterReceived(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnCharacterReceived(*reinterpret_cast<Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlProtected> : produce_base<D, Windows::UI::Xaml::Controls::IControlProtected>
{
    HRESULT __stdcall get_DefaultStyleKey(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().DefaultStyleKey());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DefaultStyleKey(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultStyleKey(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetTemplateChild(HSTRING childName, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GetTemplateChild(*reinterpret_cast<hstring const*>(&childName)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics>
{
    HRESULT __stdcall get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTabStopProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTabStopProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TabIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TabIndexProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TabNavigationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TabNavigationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalContentAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalContentAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalContentAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalContentAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DefaultStyleKeyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultStyleKeyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FocusStateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FocusStateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics2>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics3>
{
    HRESULT __stdcall get_UseSystemFocusVisualsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UseSystemFocusVisualsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTemplateFocusTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTemplateFocusTargetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsTemplateFocusTarget(void* element, bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().GetIsTemplateFocusTarget(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsTemplateFocusTarget(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsTemplateFocusTarget(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics4>
{
    HRESULT __stdcall get_IsFocusEngagementEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFocusEngagementEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFocusEngagedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFocusEngagedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RequiresPointerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RequiresPointerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusLeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusLeftProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusRightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusRightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusUpProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusUpProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusDownProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusDownProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ElementSoundModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ElementSoundModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IControlStatics5>
{
    HRESULT __stdcall get_DefaultStyleResourceUriProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultStyleResourceUriProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTemplateKeyTipTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTemplateKeyTipTargetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsTemplateKeyTipTarget(void* element, bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().GetIsTemplateKeyTipTarget(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsTemplateKeyTipTarget(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsTemplateKeyTipTarget(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IControlTemplate> : produce_base<D, Windows::UI::Xaml::Controls::IControlTemplate>
{
    HRESULT __stdcall get_TargetType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Interop::TypeName>(this->shim().TargetType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TargetType(struct struct_Windows_UI_Xaml_Interop_TypeName value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TargetType(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelector> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelector>
{
    HRESULT __stdcall SelectTemplate(void* item, void* container, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelector2> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelector2>
{
    HRESULT __stdcall SelectTemplateForItem(void* item, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplate(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>
{
    HRESULT __stdcall SelectTemplateCore(void* item, void* container, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2> : produce_base<D, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>
{
    HRESULT __stdcall SelectTemplateForItemCore(void* item, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplateCore(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickedEventArgs>
{
    HRESULT __stdcall get_OldDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().OldDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NewDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().NewDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePicker> : produce_base<D, Windows::UI::Xaml::Controls::IDatePicker>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarIdentifier(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarIdentifier(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Date(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().Date());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Date(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Date(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().DayVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MonthVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MonthVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_YearVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().YearVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_YearVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayFormat(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayFormat(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayFormat(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthFormat(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().MonthFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MonthFormat(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthFormat(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_YearFormat(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().YearFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_YearFormat(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearFormat(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinYear(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinYear());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinYear(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxYear(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxYear());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxYear(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DateChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DateChanged(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DateChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DateChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePicker2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePicker2>
{
    HRESULT __stdcall get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::DatePicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyout>
{
    HRESULT __stdcall get_CalendarIdentifier(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CalendarIdentifier(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Date(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().Date());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Date(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Date(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().DayVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MonthVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MonthVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_YearVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().YearVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_YearVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinYear(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MinYear());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinYear(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxYear(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().MaxYear());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxYear(Windows::Foundation::DateTime value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxYear(*reinterpret_cast<Windows::Foundation::DateTime const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DatePicked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DatePicked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::DatePickerFlyout, Windows::UI::Xaml::Controls::DatePickedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DatePicked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DatePicked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ShowAtAsync(void* target, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::DateTime>>>(this->shim().ShowAtAsync(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyout2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyout2>
{
    HRESULT __stdcall get_DayFormat(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DayFormat(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayFormat(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthFormat(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().MonthFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MonthFormat(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthFormat(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_YearFormat(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().YearFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_YearFormat(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearFormat(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutItem> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>
{
    HRESULT __stdcall get_PrimaryText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PrimaryText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PrimaryText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SecondaryText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SecondaryText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>
{
    HRESULT __stdcall get_PrimaryTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SecondaryTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryTextProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_CalendarIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_YearVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinYearProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinYearProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxYearProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxYearProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>
{
    HRESULT __stdcall get_DayFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_YearFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerStatics>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CalendarIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_YearVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DayFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DayFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MonthFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MonthFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_YearFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().YearFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinYearProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinYearProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxYearProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxYearProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickerStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerStatics2>
{
    HRESULT __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs>
{
    HRESULT __stdcall get_OldDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().OldDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NewDate(Windows::Foundation::DateTime* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::DateTime>(this->shim().NewDate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs>
{
    HRESULT __stdcall get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>>(this->shim().Items());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DropResult(Windows::ApplicationModel::DataTransfer::DataPackageOperation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackageOperation>(this->shim().DropResult());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>
{
    HRESULT __stdcall get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().Items());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Data(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().Data());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs>
{
    HRESULT __stdcall get_Action(Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction>(this->shim().Action());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_UseTouchAnimationsForAllNavigation(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().UseTouchAnimationsForAllNavigation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_UseTouchAnimationsForAllNavigation(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UseTouchAnimationsForAllNavigation(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFlipViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFlipViewFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::FlipView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::FlipViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFlipViewStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IFlipViewStatics2>
{
    HRESULT __stdcall get_UseTouchAnimationsForAllNavigationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UseTouchAnimationsForAllNavigationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IFlyout>
{
    HRESULT __stdcall get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FlyoutPresenterStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().FlyoutPresenterStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FlyoutPresenterStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FlyoutPresenterStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFlyoutFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFlyoutFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Flyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::FlyoutPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::IFlyoutStatics>
{
    HRESULT __stdcall get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FlyoutPresenterStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FlyoutPresenterStyleProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIcon> : produce_base<D, Windows::UI::Xaml::Controls::IFontIcon>
{
    HRESULT __stdcall get_Glyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Glyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Glyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIcon2> : produce_base<D, Windows::UI::Xaml::Controls::IFontIcon2>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIcon3> : produce_base<D, Windows::UI::Xaml::Controls::IFontIcon3>
{
    HRESULT __stdcall get_MirroredWhenRightToLeft(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MirroredWhenRightToLeft());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MirroredWhenRightToLeft(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MirroredWhenRightToLeft(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIconFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::FontIcon>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIconSource> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconSource>
{
    HRESULT __stdcall get_Glyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Glyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Glyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MirroredWhenRightToLeft(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MirroredWhenRightToLeft());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MirroredWhenRightToLeft(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MirroredWhenRightToLeft(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIconSourceFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconSourceFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::FontIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIconSourceStatics> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconSourceStatics>
{
    HRESULT __stdcall get_GlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MirroredWhenRightToLeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MirroredWhenRightToLeftProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIconStatics> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconStatics>
{
    HRESULT __stdcall get_GlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIconStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconStatics2>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFontIconStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IFontIconStatics3>
{
    HRESULT __stdcall get_MirroredWhenRightToLeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MirroredWhenRightToLeftProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFrame> : produce_base<D, Windows::UI::Xaml::Controls::IFrame>
{
    HRESULT __stdcall get_CacheSize(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CacheSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CacheSize(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CacheSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanGoBack(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoBack());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanGoForward(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoForward());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CurrentSourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Interop::TypeName>(this->shim().CurrentSourcePageType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Interop::TypeName>(this->shim().SourcePageType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SourcePageType(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BackStackDepth(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().BackStackDepth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Navigated(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Navigated(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigatedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Navigated(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Navigated(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Navigating(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Navigating(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Navigating(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Navigating(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_NavigationFailed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().NavigationFailed(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_NavigationFailed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationFailed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_NavigationStopped(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().NavigationStopped(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_NavigationStopped(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationStopped(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GoBack() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoBack();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GoForward() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoForward();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().Navigate(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&parameter)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetNavigationState(HSTRING* returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<hstring>(this->shim().GetNavigationState());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetNavigationState(HSTRING navigationState) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetNavigationState(*reinterpret_cast<hstring const*>(&navigationState));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFrame2> : produce_base<D, Windows::UI::Xaml::Controls::IFrame2>
{
    HRESULT __stdcall get_BackStack(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>>(this->shim().BackStack());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ForwardStack(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Navigation::PageStackEntry>>(this->shim().ForwardStack());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, void* infoOverride, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFrame3> : produce_base<D, Windows::UI::Xaml::Controls::IFrame3>
{
    HRESULT __stdcall GoBack(void* transitionInfoOverride) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoBack(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const*>(&transitionInfoOverride));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFrame4> : produce_base<D, Windows::UI::Xaml::Controls::IFrame4>
{
    HRESULT __stdcall SetNavigationStateWithNavigationControl(HSTRING navigationState, bool suppressNavigate) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetNavigationState(*reinterpret_cast<hstring const*>(&navigationState), suppressNavigate);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFrameFactory> : produce_base<D, Windows::UI::Xaml::Controls::IFrameFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Frame>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFrameStatics> : produce_base<D, Windows::UI::Xaml::Controls::IFrameStatics>
{
    HRESULT __stdcall get_CacheSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CacheSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanGoBackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoBackProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanGoForwardProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoForwardProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CurrentSourcePageTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CurrentSourcePageTypeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SourcePageTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourcePageTypeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BackStackDepthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackStackDepthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IFrameStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IFrameStatics2>
{
    HRESULT __stdcall get_BackStackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackStackProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ForwardStackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForwardStackProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGrid> : produce_base<D, Windows::UI::Xaml::Controls::IGrid>
{
    HRESULT __stdcall get_RowDefinitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RowDefinitionCollection>(this->shim().RowDefinitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColumnDefinitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ColumnDefinitionCollection>(this->shim().ColumnDefinitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGrid2> : produce_base<D, Windows::UI::Xaml::Controls::IGrid2>
{
    HRESULT __stdcall get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGrid3> : produce_base<D, Windows::UI::Xaml::Controls::IGrid3>
{
    HRESULT __stdcall get_RowSpacing(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().RowSpacing());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_RowSpacing(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RowSpacing(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColumnSpacing(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ColumnSpacing());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ColumnSpacing(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColumnSpacing(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGridFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGridFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Grid>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGridStatics> : produce_base<D, Windows::UI::Xaml::Controls::IGridStatics>
{
    HRESULT __stdcall get_RowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetRow(void* element, int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GetRow(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetRow(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRow(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColumnProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetColumn(void* element, int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GetColumn(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetColumn(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetColumn(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RowSpanProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpanProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetRowSpan(void* element, int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GetRowSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetRowSpan(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRowSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColumnSpanProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpanProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetColumnSpan(void* element, int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetColumnSpan(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGridStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IGridStatics2>
{
    HRESULT __stdcall get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGridStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IGridStatics3>
{
    HRESULT __stdcall get_RowSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpacingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColumnSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpacingProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::GridView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::GridViewHeaderItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGridViewItem> : produce_base<D, Windows::UI::Xaml::Controls::IGridViewItem>
{
    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGridViewItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGridViewItemFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::GridViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::GroupItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGroupStyle> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyle>
{
    HRESULT __stdcall get_Panel(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsPanelTemplate>(this->shim().Panel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Panel(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Panel(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemsPanelTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContainerStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().ContainerStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContainerStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContainerStyleSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ContainerStyleSelector());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContainerStyleSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().HeaderTemplateSelector());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HidesIfEmpty(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HidesIfEmpty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HidesIfEmpty(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HidesIfEmpty(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGroupStyle2> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyle2>
{
    HRESULT __stdcall get_HeaderContainerStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().HeaderContainerStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderContainerStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGroupStyleFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyleFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::GroupStyle>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGroupStyleSelector> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyleSelector>
{
    HRESULT __stdcall SelectGroupStyle(void* group, uint32_t level, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::GroupStyle>(this->shim().SelectGroupStyle(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&group), level));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::GroupStyleSelector>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>
{
    HRESULT __stdcall SelectGroupStyleCore(void* group, uint32_t level, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::GroupStyle>(this->shim().SelectGroupStyleCore(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&group), level));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_PlacementTarget(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PlacementTarget());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlacementTarget(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementTarget(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlacementAlignment(Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment>(this->shim().PlacementAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlacementAlignment(Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOpen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AreCandidatesEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreCandidatesEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AreCandidatesEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreCandidatesEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Opened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Opened(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Opened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Closed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Closed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Closed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall TryClose(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().TryClose());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall TryOpen(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().TryOpen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHandwritingViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::IHandwritingViewFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::HandwritingView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHandwritingViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::IHandwritingViewStatics>
{
    HRESULT __stdcall get_PlacementTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlacementAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AreCandidatesEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreCandidatesEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHub> : produce_base<D, Windows::UI::Xaml::Controls::IHub>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DefaultSectionIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().DefaultSectionIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DefaultSectionIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultSectionIndex(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Sections(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().Sections());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SectionsInView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().SectionsInView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SectionHeaders(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::Foundation::IInspectable>>(this->shim().SectionHeaders());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SectionHeaderClick(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SectionHeaderClick(*reinterpret_cast<Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SectionHeaderClick(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SectionHeaderClick(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SectionsInViewChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SectionsInViewChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SectionsInViewChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SectionsInViewChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ScrollToSection(void* section) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollToSection(*reinterpret_cast<Windows::UI::Xaml::Controls::HubSection const*>(&section));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHubFactory> : produce_base<D, Windows::UI::Xaml::Controls::IHubFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Hub>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHubSection> : produce_base<D, Windows::UI::Xaml::Controls::IHubSection>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHeaderInteractive(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHeaderInteractive());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsHeaderInteractive(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHeaderInteractive(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHubSectionFactory> : produce_base<D, Windows::UI::Xaml::Controls::IHubSectionFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::HubSection>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs>
{
    HRESULT __stdcall get_Section(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HubSection>(this->shim().Section());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHubSectionStatics> : produce_base<D, Windows::UI::Xaml::Controls::IHubSectionStatics>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHeaderInteractiveProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHeaderInteractiveProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHubStatics> : produce_base<D, Windows::UI::Xaml::Controls::IHubStatics>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DefaultSectionIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultSectionIndexProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SemanticZoomOwnerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SemanticZoomOwnerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsActiveViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveViewProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomedInViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHyperlinkButton> : produce_base<D, Windows::UI::Xaml::Controls::IHyperlinkButton>
{
    HRESULT __stdcall get_NavigateUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().NavigateUri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_NavigateUri(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateUri(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHyperlinkButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::HyperlinkButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IHyperlinkButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IHyperlinkButtonStatics>
{
    HRESULT __stdcall get_NavigateUriProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NavigateUriProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IIconElement> : produce_base<D, Windows::UI::Xaml::Controls::IIconElement>
{
    HRESULT __stdcall get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IIconSource> : produce_base<D, Windows::UI::Xaml::Controls::IIconSource>
{
    HRESULT __stdcall get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IImage> : produce_base<D, Windows::UI::Xaml::Controls::IImage>
{
    HRESULT __stdcall get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().Source());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NineGrid(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().NineGrid());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_NineGrid(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NineGrid(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlayToSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::PlayTo::PlayToSource>(this->shim().PlayToSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ImageFailed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ImageFailed(*reinterpret_cast<Windows::UI::Xaml::ExceptionRoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ImageFailed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ImageFailed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ImageOpened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ImageOpened(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ImageOpened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ImageOpened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IImage2> : produce_base<D, Windows::UI::Xaml::Controls::IImage2>
{
    HRESULT __stdcall GetAsCastingSource(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Media::Casting::CastingSource>(this->shim().GetAsCastingSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IImage3> : produce_base<D, Windows::UI::Xaml::Controls::IImage3>
{
    HRESULT __stdcall GetAlphaMask(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Composition::CompositionBrush>(this->shim().GetAlphaMask());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IImageStatics> : produce_base<D, Windows::UI::Xaml::Controls::IImageStatics>
{
    HRESULT __stdcall get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NineGridProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NineGridProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlayToSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkCanvas> : produce_base<D, Windows::UI::Xaml::Controls::IInkCanvas>
{
    HRESULT __stdcall get_InkPresenter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkPresenter>(this->shim().InkPresenter());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkCanvasFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkCanvasFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkCanvas>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbar> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbar>
{
    HRESULT __stdcall get_InitialControls(Windows::UI::Xaml::Controls::InkToolbarInitialControls* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarInitialControls>(this->shim().InitialControls());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_InitialControls(Windows::UI::Xaml::Controls::InkToolbarInitialControls value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InitialControls(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarInitialControls const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Children(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObjectCollection>(this->shim().Children());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ActiveTool(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarToolButton>(this->shim().ActiveTool());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ActiveTool(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ActiveTool(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarToolButton const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InkDrawingAttributes(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().InkDrawingAttributes());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsRulerButtonChecked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRulerButtonChecked());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsRulerButtonChecked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRulerButtonChecked(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TargetInkCanvas(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkCanvas>(this->shim().TargetInkCanvas());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TargetInkCanvas(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TargetInkCanvas(*reinterpret_cast<Windows::UI::Xaml::Controls::InkCanvas const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ActiveToolChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ActiveToolChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ActiveToolChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ActiveToolChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_InkDrawingAttributesChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().InkDrawingAttributesChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_InkDrawingAttributesChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InkDrawingAttributesChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_EraseAllClicked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().EraseAllClicked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_EraseAllClicked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().EraseAllClicked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_IsRulerButtonCheckedChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().IsRulerButtonCheckedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_IsRulerButtonCheckedChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRulerButtonCheckedChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetToolButton(Windows::UI::Xaml::Controls::InkToolbarTool tool, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::InkToolbarToolButton>(this->shim().GetToolButton(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarTool const*>(&tool)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetToggleButton(Windows::UI::Xaml::Controls::InkToolbarToggle tool, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::InkToolbarToggleButton>(this->shim().GetToggleButton(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarToggle const*>(&tool)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbar2> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbar2>
{
    HRESULT __stdcall get_IsStencilButtonChecked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStencilButtonChecked());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsStencilButtonChecked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStencilButtonChecked(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ButtonFlyoutPlacement(Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement>(this->shim().ButtonFlyoutPlacement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ButtonFlyoutPlacement(Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ButtonFlyoutPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_IsStencilButtonCheckedChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().IsStencilButtonCheckedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbar, Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_IsStencilButtonCheckedChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStencilButtonCheckedChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetMenuButton(Windows::UI::Xaml::Controls::InkToolbarMenuKind menu, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::InkToolbarMenuButton>(this->shim().GetMenuButton(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarMenuKind const*>(&menu)));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPen> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPen>
{
    HRESULT __stdcall CreateInkDrawingAttributes(void* brush, double strokeWidth, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().CreateInkDrawingAttributes(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&brush), strokeWidth));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>
{
    HRESULT __stdcall get_CustomPen(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomPen>(this->shim().CustomPen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CustomPen(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CustomPen(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarCustomPen const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ConfigurationContent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ConfigurationContent());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ConfigurationContent(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ConfigurationContent(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomPenButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>
{
    HRESULT __stdcall get_CustomPenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CustomPenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ConfigurationContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ConfigurationContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomPen>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>
{
    HRESULT __stdcall CreateInkDrawingAttributesCore(void* brush, double strokeWidth, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().CreateInkDrawingAttributesCore(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&brush), strokeWidth));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton>
{
    HRESULT __stdcall get_ConfigurationContent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().ConfigurationContent());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ConfigurationContent(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ConfigurationContent(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarCustomToolButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics>
{
    HRESULT __stdcall get_ConfigurationContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ConfigurationContentProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_IsClearAllVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsClearAllVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsClearAllVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsClearAllVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarEraserButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2>
{
    HRESULT __stdcall get_IsClearAllVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsClearAllVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>
{
    HRESULT __stdcall get_Kind(Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind>(this->shim().Kind());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Kind(Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Kind(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsChecked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsChecked());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsChecked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsChecked(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Checked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Checked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Checked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Checked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Unchecked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Unchecked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Unchecked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Unchecked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>
{
    HRESULT __stdcall get_KindProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().KindProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsCheckedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCheckedProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarHighlighterButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs>
{
    HRESULT __stdcall get_StencilButton(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilButton>(this->shim().StencilButton());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StencilKind(Windows::UI::Xaml::Controls::InkToolbarStencilKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilKind>(this->shim().StencilKind());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarMenuButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarMenuButton>
{
    HRESULT __stdcall get_MenuKind(Windows::UI::Xaml::Controls::InkToolbarMenuKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarMenuKind>(this->shim().MenuKind());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsExtensionGlyphShown(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExtensionGlyphShown());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsExtensionGlyphShown(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExtensionGlyphShown(value);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_IsExtensionGlyphShownProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExtensionGlyphShownProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenButton>
{
    HRESULT __stdcall get_Palette(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush>>(this->shim().Palette());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Palette(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Palette(*reinterpret_cast<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Media::Brush> const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinStrokeWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinStrokeWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinStrokeWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinStrokeWidth(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxStrokeWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxStrokeWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxStrokeWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxStrokeWidth(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().SelectedBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedBrushIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectedBrushIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedBrushIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedBrushIndex(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedStrokeWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().SelectedStrokeWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedStrokeWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedStrokeWidth(value);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_PaletteProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaletteProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinStrokeWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinStrokeWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxStrokeWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxStrokeWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedBrushIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBrushIndexProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedStrokeWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedStrokeWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl>
{
    HRESULT __stdcall get_PenButton(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarPenButton>(this->shim().PenButton());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics>
{
    HRESULT __stdcall get_PenButtonProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PenButtonProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarPencilButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButton>
{
    HRESULT __stdcall get_Ruler(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkPresenterRuler>(this->shim().Ruler());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarRulerButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics>
{
    HRESULT __stdcall get_RulerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RulerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStatics>
{
    HRESULT __stdcall get_InitialControlsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InitialControlsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ChildrenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildrenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ActiveToolProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ActiveToolProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InkDrawingAttributesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InkDrawingAttributesProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsRulerButtonCheckedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRulerButtonCheckedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TargetInkCanvasProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TargetInkCanvasProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStatics2>
{
    HRESULT __stdcall get_IsStencilButtonCheckedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStencilButtonCheckedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ButtonFlyoutPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ButtonFlyoutPlacementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButton>
{
    HRESULT __stdcall get_Ruler(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkPresenterRuler>(this->shim().Ruler());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Protractor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Input::Inking::InkPresenterProtractor>(this->shim().Protractor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedStencil(Windows::UI::Xaml::Controls::InkToolbarStencilKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilKind>(this->shim().SelectedStencil());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedStencil(Windows::UI::Xaml::Controls::InkToolbarStencilKind value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedStencil(*reinterpret_cast<Windows::UI::Xaml::Controls::InkToolbarStencilKind const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsRulerItemVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRulerItemVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsRulerItemVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRulerItemVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsProtractorItemVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsProtractorItemVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsProtractorItemVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsProtractorItemVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::InkToolbarStencilButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>
{
    HRESULT __stdcall get_RulerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RulerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ProtractorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProtractorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedStencilProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedStencilProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsRulerItemVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRulerItemVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsProtractorItemVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsProtractorItemVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInkToolbarToggleButton> : produce_base<D, Windows::UI::Xaml::Controls::IInkToolbarToggleButton>
{
    HRESULT __stdcall get_ToggleKind(Windows::UI::Xaml::Controls::InkToolbarToggle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarToggle>(this->shim().ToggleKind());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_ToolKind(Windows::UI::Xaml::Controls::InkToolbarTool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::InkToolbarTool>(this->shim().ToolKind());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsExtensionGlyphShown(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExtensionGlyphShown());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsExtensionGlyphShown(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExtensionGlyphShown(value);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_IsExtensionGlyphShownProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExtensionGlyphShownProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IInsertionPanel> : produce_base<D, Windows::UI::Xaml::Controls::IInsertionPanel>
{
    HRESULT __stdcall GetInsertionIndexes(Windows::Foundation::Point position, int32_t* first, int32_t* second) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GetInsertionIndexes(*reinterpret_cast<Windows::Foundation::Point const*>(&position), *first, *second);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_ClickedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ClickedItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemContainerGenerator> : produce_base<D, Windows::UI::Xaml::Controls::IItemContainerGenerator>
{
    HRESULT __stdcall add_ItemsChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ItemsChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ItemsChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ItemFromContainer(void* container, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ContainerFromItem(void* item, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall IndexFromContainer(void* container, int32_t* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<int32_t>(this->shim().IndexFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ContainerFromIndex(int32_t index, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromIndex(index));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetItemContainerGeneratorForPanel(void* panel, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().GetItemContainerGeneratorForPanel(*reinterpret_cast<Windows::UI::Xaml::Controls::Panel const*>(&panel)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall 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());
            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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Stop() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stop();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GenerateNext(bool* isNewlyRealized, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GenerateNext(*isNewlyRealized));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall PrepareItemContainer(void* container) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrepareItemContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RemoveAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveAll();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Remove(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t count) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Remove(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position), count);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GeneratorPositionFromIndex(int32_t itemIndex, struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition>(this->shim().GeneratorPositionFromIndex(itemIndex));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall IndexFromGeneratorPosition(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<int32_t>(this->shim().IndexFromGeneratorPosition(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Recycle(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t count) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Recycle(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position), count);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemContainerMapping> : produce_base<D, Windows::UI::Xaml::Controls::IItemContainerMapping>
{
    HRESULT __stdcall ItemFromContainer(void* container, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ContainerFromItem(void* item, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall IndexFromContainer(void* container, int32_t* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<int32_t>(this->shim().IndexFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ContainerFromIndex(int32_t index, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromIndex(index));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsControl> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControl>
{
    HRESULT __stdcall get_ItemsSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemsSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemCollection>(this->shim().Items());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ItemTemplateSelector());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemsPanel(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsPanelTemplate>(this->shim().ItemsPanel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemsPanel(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsPanel(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemsPanelTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayMemberPath(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisplayMemberPath());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DisplayMemberPath(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMemberPath(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemContainerStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().ItemContainerStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemContainerStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemContainerStyleSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ItemContainerStyleSelector());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemContainerStyleSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemContainerGenerator(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().ItemContainerGenerator());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemContainerTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ItemContainerTransitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemContainerTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GroupStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IObservableVector<Windows::UI::Xaml::Controls::GroupStyle>>(this->shim().GroupStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GroupStyleSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::GroupStyleSelector>(this->shim().GroupStyleSelector());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GroupStyleSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsGrouping(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGrouping());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsControl2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControl2>
{
    HRESULT __stdcall get_ItemsPanelRoot(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Panel>(this->shim().ItemsPanelRoot());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsControl3> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControl3>
{
    HRESULT __stdcall GroupHeaderContainerFromItemContainer(void* itemContainer, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GroupHeaderContainerFromItemContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&itemContainer)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControlFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ItemsControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsControlOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControlOverrides>
{
    HRESULT __stdcall IsItemItsOwnContainerOverride(void* item, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().IsItemItsOwnContainerOverride(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetContainerForItemOverride(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().GetContainerForItemOverride());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ClearContainerForItemOverride(void* element, void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClearContainerForItemOverride(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall PrepareContainerForItemOverride(void* element, void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrepareContainerForItemOverride(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnItemsChanged(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemsChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnItemContainerStyleChanged(void* oldItemContainerStyle, void* newItemContainerStyle) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemContainerStyleChanged(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&oldItemContainerStyle), *reinterpret_cast<Windows::UI::Xaml::Style const*>(&newItemContainerStyle));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnItemContainerStyleSelectorChanged(void* oldItemContainerStyleSelector, void* newItemContainerStyleSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemContainerStyleSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&oldItemContainerStyleSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&newItemContainerStyleSelector));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnItemTemplateChanged(void* oldItemTemplate, void* newItemTemplate) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemTemplateChanged(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&oldItemTemplate), *reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&newItemTemplate));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnItemTemplateSelectorChanged(void* oldItemTemplateSelector, void* newItemTemplateSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemTemplateSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&oldItemTemplateSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&newItemTemplateSelector));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnGroupStyleSelectorChanged(void* oldGroupStyleSelector, void* newGroupStyleSelector) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnGroupStyleSelectorChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&oldGroupStyleSelector), *reinterpret_cast<Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&newGroupStyleSelector));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IItemsControlStatics>
{
    HRESULT __stdcall get_ItemsSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemTemplateSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateSelectorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemsPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsPanelProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayMemberPathProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayMemberPathProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemContainerStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemContainerStyleSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleSelectorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemContainerTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerTransitionsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GroupStyleSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupStyleSelectorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsGroupingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetItemsOwner(void* element, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::ItemsControl>(this->shim().GetItemsOwner(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ItemsControlFromItemContainer(void* container, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::ItemsControl>(this->shim().ItemsControlFromItemContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_AddedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().AddedItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RemovedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().RemovedItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPresenter>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().HeaderTransitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsPresenter2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPresenter2>
{
    HRESULT __stdcall get_Footer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Footer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Footer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Footer(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FooterTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().FooterTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FooterTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FooterTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().FooterTransitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FooterTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsPresenterStatics> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPresenterStatics>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTransitionsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsPresenterStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>
{
    HRESULT __stdcall get_FooterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FooterTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FooterTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTransitionsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsStackPanel> : produce_base<D, Windows::UI::Xaml::Controls::IItemsStackPanel>
{
    HRESULT __stdcall get_GroupPadding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().GroupPadding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GroupPadding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupPadding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstCacheIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstCacheIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstVisibleIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstVisibleIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LastVisibleIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastVisibleIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LastCacheIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastCacheIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ScrollingDirection(Windows::UI::Xaml::Controls::PanelScrollingDirection* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PanelScrollingDirection>(this->shim().ScrollingDirection());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement>(this->shim().GroupHeaderPlacement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupHeaderPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemsUpdatingScrollMode(Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode>(this->shim().ItemsUpdatingScrollMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemsUpdatingScrollMode(Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsUpdatingScrollMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CacheLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CacheLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CacheLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CacheLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsStackPanel2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsStackPanel2>
{
    HRESULT __stdcall get_AreStickyGroupHeadersEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreStickyGroupHeadersEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AreStickyGroupHeadersEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreStickyGroupHeadersEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsStackPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>
{
    HRESULT __stdcall get_GroupPaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupPaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GroupHeaderPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupHeaderPlacementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CacheLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CacheLengthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsStackPanelStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsStackPanelStatics2>
{
    HRESULT __stdcall get_AreStickyGroupHeadersEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreStickyGroupHeadersEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsWrapGrid> : produce_base<D, Windows::UI::Xaml::Controls::IItemsWrapGrid>
{
    HRESULT __stdcall get_GroupPadding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().GroupPadding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GroupPadding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupPadding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaximumRowsOrColumns(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaximumRowsOrColumns(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaximumRowsOrColumns(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemWidth(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstCacheIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstCacheIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FirstVisibleIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstVisibleIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LastVisibleIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastVisibleIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LastCacheIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastCacheIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ScrollingDirection(Windows::UI::Xaml::Controls::PanelScrollingDirection* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PanelScrollingDirection>(this->shim().ScrollingDirection());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement>(this->shim().GroupHeaderPlacement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GroupHeaderPlacement(Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupHeaderPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CacheLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CacheLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CacheLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CacheLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsWrapGrid2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsWrapGrid2>
{
    HRESULT __stdcall get_AreStickyGroupHeadersEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreStickyGroupHeadersEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AreStickyGroupHeadersEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreStickyGroupHeadersEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsWrapGridStatics> : produce_base<D, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>
{
    HRESULT __stdcall get_GroupPaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupPaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaximumRowsOrColumnsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GroupHeaderPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupHeaderPlacementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CacheLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CacheLengthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IItemsWrapGridStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IItemsWrapGridStatics2>
{
    HRESULT __stdcall get_AreStickyGroupHeadersEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreStickyGroupHeadersEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListBox> : produce_base<D, Windows::UI::Xaml::Controls::IListBox>
{
    HRESULT __stdcall get_SelectedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionMode(Windows::UI::Xaml::Controls::SelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SelectionMode>(this->shim().SelectionMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionMode(Windows::UI::Xaml::Controls::SelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::SelectionMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ScrollIntoView(void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollIntoView(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListBox2> : produce_base<D, Windows::UI::Xaml::Controls::IListBox2>
{
    HRESULT __stdcall get_SingleSelectionFollowsFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SingleSelectionFollowsFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SingleSelectionFollowsFocus(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListBoxFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ListBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ListBoxItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IListBoxStatics>
{
    HRESULT __stdcall get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IListBoxStatics2>
{
    HRESULT __stdcall get_SingleSelectionFollowsFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SingleSelectionFollowsFocusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListPickerFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IListPickerFlyout>
{
    HRESULT __stdcall get_ItemsSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemsSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayMemberPath(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisplayMemberPath());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DisplayMemberPath(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMemberPath(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionMode(Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode>(this->shim().SelectionMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionMode(Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectedIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedIndex(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedValue(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedValue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedValue(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedValue(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedValuePath(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedValuePath());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedValuePath(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedValuePath(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ItemsPicked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ItemsPicked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListPickerFlyout, Windows::UI::Xaml::Controls::ItemsPickedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ItemsPicked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsPicked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ShowAtAsync(void* target, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Foundation::IInspectable>>>(this->shim().ShowAtAsync(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_ItemsSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayMemberPathProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayMemberPathProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedIndexProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedItemProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedValueProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedValuePathProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedValuePathProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_SelectedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionMode(Windows::UI::Xaml::Controls::ListViewSelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewSelectionMode>(this->shim().SelectionMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionMode(Windows::UI::Xaml::Controls::ListViewSelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewSelectionMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSwipeEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSwipeEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSwipeEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSwipeEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanDragItems(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanDragItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CanDragItems(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanDragItems(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanReorderItems(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanReorderItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CanReorderItems(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanReorderItems(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsItemClickEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsItemClickEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsItemClickEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsItemClickEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DataFetchSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DataFetchSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DataFetchSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DataFetchSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IncrementalLoadingThreshold(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().IncrementalLoadingThreshold());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IncrementalLoadingThreshold(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IncrementalLoadingThreshold(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IncrementalLoadingTrigger(Windows::UI::Xaml::Controls::IncrementalLoadingTrigger* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IncrementalLoadingTrigger>(this->shim().IncrementalLoadingTrigger());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IncrementalLoadingTrigger(Windows::UI::Xaml::Controls::IncrementalLoadingTrigger value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IncrementalLoadingTrigger(*reinterpret_cast<Windows::UI::Xaml::Controls::IncrementalLoadingTrigger const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ItemClick(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ItemClick(*reinterpret_cast<Windows::UI::Xaml::Controls::ItemClickEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ItemClick(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemClick(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DragItemsStarting(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DragItemsStarting(*reinterpret_cast<Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DragItemsStarting(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsStarting(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ScrollIntoView(void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollIntoView(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall LoadMoreItemsAsync(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::UI::Xaml::Data::LoadMoreItemsResult>>(this->shim().LoadMoreItemsAsync());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ScrollIntoViewWithAlignment(void* item, Windows::UI::Xaml::Controls::ScrollIntoViewAlignment alignment) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollIntoView(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollIntoViewAlignment const*>(&alignment));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().HeaderTransitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBase2> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase2>
{
    HRESULT __stdcall get_ShowsScrollingPlaceholders(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowsScrollingPlaceholders());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ShowsScrollingPlaceholders(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowsScrollingPlaceholders(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContainerContentChanging(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContainerContentChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContainerContentChanging(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainerContentChanging(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetDesiredContainerUpdateDuration(Windows::Foundation::TimeSpan duration) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDesiredContainerUpdateDuration(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&duration));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Footer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Footer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Footer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Footer(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FooterTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().FooterTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FooterTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FooterTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().FooterTransitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FooterTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBase3> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase3>
{
    HRESULT __stdcall get_ReorderMode(Windows::UI::Xaml::Controls::ListViewReorderMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ListViewReorderMode>(this->shim().ReorderMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ReorderMode(Windows::UI::Xaml::Controls::ListViewReorderMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ReorderMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ListViewReorderMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBase4> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase4>
{
    HRESULT __stdcall get_SelectedRanges(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVectorView<Windows::UI::Xaml::Data::ItemIndexRange>>(this->shim().SelectedRanges());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsMultiSelectCheckBoxEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsMultiSelectCheckBoxEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsMultiSelectCheckBoxEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsMultiSelectCheckBoxEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DragItemsCompleted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DragItemsCompleted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DragItemsCompleted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsCompleted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ChoosingItemContainer(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ChoosingItemContainer(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ChoosingItemContainer(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChoosingItemContainer(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ChoosingGroupHeaderContainer(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ChoosingGroupHeaderContainer(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ChoosingGroupHeaderContainer(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChoosingGroupHeaderContainer(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SelectRange(void* itemIndexRange) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectRange(*reinterpret_cast<Windows::UI::Xaml::Data::ItemIndexRange const*>(&itemIndexRange));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall DeselectRange(void* itemIndexRange) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DeselectRange(*reinterpret_cast<Windows::UI::Xaml::Data::ItemIndexRange const*>(&itemIndexRange));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBase5> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase5>
{
    HRESULT __stdcall get_SingleSelectionFollowsFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SingleSelectionFollowsFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SingleSelectionFollowsFocus(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall IsDragSource(bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().IsDragSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBase6> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBase6>
{
    HRESULT __stdcall TryStartConnectedAnimationAsync(void* animation, void* item, HSTRING elementName, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall PrepareConnectedAnimation(HSTRING key, void* item, HSTRING elementName, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ListViewBase>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSwipeEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSwipeEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanDragItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanDragItemsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanReorderItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanReorderItemsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsItemClickEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsItemClickEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DataFetchSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DataFetchSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IncrementalLoadingThresholdProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IncrementalLoadingThresholdProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IncrementalLoadingTriggerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IncrementalLoadingTriggerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SemanticZoomOwnerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SemanticZoomOwnerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsActiveViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveViewProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomedInViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTransitionsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseStatics2>
{
    HRESULT __stdcall get_ShowsScrollingPlaceholdersProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowsScrollingPlaceholdersProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FooterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FooterTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FooterTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTransitionsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseStatics3>
{
    HRESULT __stdcall get_ReorderModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ReorderModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseStatics4>
{
    HRESULT __stdcall get_IsMultiSelectCheckBoxEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsMultiSelectCheckBoxEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewBaseStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IListViewBaseStatics5>
{
    HRESULT __stdcall get_SingleSelectionFollowsFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SingleSelectionFollowsFocusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListViewFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ListView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ListViewHeaderItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewItem> : produce_base<D, Windows::UI::Xaml::Controls::IListViewItem>
{
    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IListViewItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IListViewItemFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ListViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall GetRelativeScrollPosition(void* listViewBase, void* itemToKeyHandler, HSTRING* returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetRelativeScrollPositionAsync(void* listViewBase, HSTRING relativeScrollPosition, void* keyToItemHandler, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaElement> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElement>
{
    HRESULT __stdcall get_PosterSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PosterSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PosterSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PosterSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Source());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsMuted(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsMuted());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsMuted(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsMuted(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsAudioOnly(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsAudioOnly());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AutoPlay(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AutoPlay());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AutoPlay(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoPlay(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Volume(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Volume());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Volume(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Volume(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Balance(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Balance());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Balance(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Balance(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NaturalVideoHeight(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().NaturalVideoHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NaturalVideoWidth(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().NaturalVideoWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NaturalDuration(struct struct_Windows_UI_Xaml_Duration* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Duration>(this->shim().NaturalDuration());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Position(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().Position());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Position(Windows::Foundation::TimeSpan value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Position(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DownloadProgress(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DownloadProgress());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BufferingProgress(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BufferingProgress());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DownloadProgressOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DownloadProgressOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CurrentState(Windows::UI::Xaml::Media::MediaElementState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::MediaElementState>(this->shim().CurrentState());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Markers(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::TimelineMarkerCollection>(this->shim().Markers());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanSeek(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanSeek());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanPause(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanPause());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AudioStreamCount(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().AudioStreamCount());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AudioStreamIndex(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<int32_t>>(this->shim().AudioStreamIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AudioStreamIndex(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AudioStreamIndex(*reinterpret_cast<Windows::Foundation::IReference<int32_t> const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaybackRate(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().PlaybackRate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaybackRate(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaybackRate(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsLooping(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsLooping());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsLooping(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsLooping(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlayToSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::PlayTo::PlayToSource>(this->shim().PlayToSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DefaultPlaybackRate(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DefaultPlaybackRate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DefaultPlaybackRate(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultPlaybackRate(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AspectRatioWidth(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().AspectRatioWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AspectRatioHeight(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().AspectRatioHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RealTimePlayback(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().RealTimePlayback());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_RealTimePlayback(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RealTimePlayback(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AudioCategory(Windows::UI::Xaml::Media::AudioCategory* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::AudioCategory>(this->shim().AudioCategory());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AudioCategory(Windows::UI::Xaml::Media::AudioCategory value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AudioCategory(*reinterpret_cast<Windows::UI::Xaml::Media::AudioCategory const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AudioDeviceType(Windows::UI::Xaml::Media::AudioDeviceType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::AudioDeviceType>(this->shim().AudioDeviceType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AudioDeviceType(Windows::UI::Xaml::Media::AudioDeviceType value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AudioDeviceType(*reinterpret_cast<Windows::UI::Xaml::Media::AudioDeviceType const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ProtectionManager(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Protection::MediaProtectionManager>(this->shim().ProtectionManager());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ProtectionManager(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ProtectionManager(*reinterpret_cast<Windows::Media::Protection::MediaProtectionManager const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stereo3DVideoPackingMode(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stereo3DVideoPackingMode>(this->shim().Stereo3DVideoPackingMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Stereo3DVideoPackingMode(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stereo3DVideoPackingMode(*reinterpret_cast<Windows::UI::Xaml::Media::Stereo3DVideoPackingMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stereo3DVideoRenderMode(Windows::UI::Xaml::Media::Stereo3DVideoRenderMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stereo3DVideoRenderMode>(this->shim().Stereo3DVideoRenderMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Stereo3DVideoRenderMode(Windows::UI::Xaml::Media::Stereo3DVideoRenderMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stereo3DVideoRenderMode(*reinterpret_cast<Windows::UI::Xaml::Media::Stereo3DVideoRenderMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsStereo3DVideo(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStereo3DVideo());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_MediaOpened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().MediaOpened(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_MediaOpened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaOpened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_MediaEnded(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().MediaEnded(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_MediaEnded(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaEnded(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_MediaFailed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().MediaFailed(*reinterpret_cast<Windows::UI::Xaml::ExceptionRoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_MediaFailed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaFailed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DownloadProgressChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DownloadProgressChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DownloadProgressChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DownloadProgressChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_BufferingProgressChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().BufferingProgressChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_BufferingProgressChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BufferingProgressChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CurrentStateChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CurrentStateChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CurrentStateChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CurrentStateChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_MarkerReached(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().MarkerReached(*reinterpret_cast<Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_MarkerReached(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MarkerReached(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_RateChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().RateChanged(*reinterpret_cast<Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_RateChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RateChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_VolumeChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().VolumeChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_VolumeChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VolumeChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SeekCompleted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SeekCompleted(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SeekCompleted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SeekCompleted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Stop() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stop();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Play() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Play();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Pause() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pause();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall CanPlayType(HSTRING type, Windows::UI::Xaml::Media::MediaCanPlayResponse* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Media::MediaCanPlayResponse>(this->shim().CanPlayType(*reinterpret_cast<hstring const*>(&type)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetSource(void* stream, HSTRING mimeType) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSource(*reinterpret_cast<Windows::Storage::Streams::IRandomAccessStream const*>(&stream), *reinterpret_cast<hstring const*>(&mimeType));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAudioStreamLanguage(void* index, HSTRING* returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<hstring>(this->shim().GetAudioStreamLanguage(*reinterpret_cast<Windows::Foundation::IReference<int32_t> const*>(&index)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall AddAudioEffect(HSTRING effectID, bool effectOptional, void* effectConfiguration) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddAudioEffect(*reinterpret_cast<hstring const*>(&effectID), effectOptional, *reinterpret_cast<Windows::Foundation::Collections::IPropertySet const*>(&effectConfiguration));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall AddVideoEffect(HSTRING effectID, bool effectOptional, void* effectConfiguration) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddVideoEffect(*reinterpret_cast<hstring const*>(&effectID), effectOptional, *reinterpret_cast<Windows::Foundation::Collections::IPropertySet const*>(&effectConfiguration));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RemoveAllEffects() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveAllEffects();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ActualStereo3DVideoPackingMode(Windows::UI::Xaml::Media::Stereo3DVideoPackingMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stereo3DVideoPackingMode>(this->shim().ActualStereo3DVideoPackingMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaElement2> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElement2>
{
    HRESULT __stdcall get_AreTransportControlsEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreTransportControlsEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AreTransportControlsEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreTransportControlsEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFullWindow(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFullWindow(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindow(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetMediaStreamSource(void* source) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetMediaStreamSource(*reinterpret_cast<Windows::Media::Core::IMediaSource const*>(&source));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlayToPreferredSourceUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().PlayToPreferredSourceUri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlayToPreferredSourceUri(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlayToPreferredSourceUri(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaElement3> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElement3>
{
    HRESULT __stdcall get_TransportControls(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().TransportControls());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TransportControls(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TransportControls(*reinterpret_cast<Windows::UI::Xaml::Controls::MediaTransportControls const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PartialMediaFailureDetected(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PartialMediaFailureDetected(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaElement, Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PartialMediaFailureDetected(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PartialMediaFailureDetected(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetPlaybackSource(void* source) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPlaybackSource(*reinterpret_cast<Windows::Media::Playback::IMediaPlaybackSource const*>(&source));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAsCastingSource(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Media::Casting::CastingSource>(this->shim().GetAsCastingSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaElementStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElementStatics>
{
    HRESULT __stdcall get_PosterSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PosterSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsMutedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsMutedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsAudioOnlyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsAudioOnlyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AutoPlayProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoPlayProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VolumeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VolumeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BalanceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BalanceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NaturalVideoHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalVideoHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NaturalVideoWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalVideoWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NaturalDurationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalDurationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PositionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PositionProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DownloadProgressProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DownloadProgressProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BufferingProgressProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BufferingProgressProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DownloadProgressOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DownloadProgressOffsetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CurrentStateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CurrentStateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanSeekProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanSeekProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanPauseProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanPauseProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AudioStreamCountProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioStreamCountProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AudioStreamIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioStreamIndexProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaybackRateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaybackRateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsLoopingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsLoopingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlayToSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DefaultPlaybackRateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultPlaybackRateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AspectRatioWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AspectRatioWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AspectRatioHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AspectRatioHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RealTimePlaybackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RealTimePlaybackProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AudioCategoryProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioCategoryProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AudioDeviceTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AudioDeviceTypeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ProtectionManagerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProtectionManagerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stereo3DVideoPackingModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Stereo3DVideoPackingModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stereo3DVideoRenderModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().Stereo3DVideoRenderModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsStereo3DVideoProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStereo3DVideoProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ActualStereo3DVideoPackingModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ActualStereo3DVideoPackingModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaElementStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IMediaElementStatics2>
{
    HRESULT __stdcall get_AreTransportControlsEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreTransportControlsEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFullWindowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlayToPreferredSourceUriProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToPreferredSourceUriProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerElement> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerElement>
{
    HRESULT __stdcall get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Playback::IMediaPlaybackSource>(this->shim().Source());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::Media::Playback::IMediaPlaybackSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TransportControls(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().TransportControls());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TransportControls(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TransportControls(*reinterpret_cast<Windows::UI::Xaml::Controls::MediaTransportControls const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AreTransportControlsEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreTransportControlsEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AreTransportControlsEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreTransportControlsEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PosterSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PosterSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PosterSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PosterSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AutoPlay(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AutoPlay());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AutoPlay(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoPlay(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFullWindow(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFullWindow(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindow(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MediaPlayer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Playback::MediaPlayer>(this->shim().MediaPlayer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetMediaPlayer(void* mediaPlayer) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetMediaPlayer(*reinterpret_cast<Windows::Media::Playback::MediaPlayer const*>(&mediaPlayer));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerElementFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::MediaPlayerElement>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>
{
    HRESULT __stdcall get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AreTransportControlsEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreTransportControlsEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PosterSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PosterSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AutoPlayProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoPlayProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFullWindowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MediaPlayerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MediaPlayerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenter>
{
    HRESULT __stdcall get_MediaPlayer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Media::Playback::MediaPlayer>(this->shim().MediaPlayer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MediaPlayer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaPlayer(*reinterpret_cast<Windows::Media::Playback::MediaPlayer const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFullWindow(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFullWindow(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindow(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::MediaPlayerPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>
{
    HRESULT __stdcall get_MediaPlayerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MediaPlayerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFullWindowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControls> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControls>
{
    HRESULT __stdcall get_IsFullWindowButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindowButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFullWindowButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindowButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFullWindowEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindowEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFullWindowEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindowEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsZoomButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsZoomEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFastForwardButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastForwardButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFastForwardButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastForwardButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFastForwardEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastForwardEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFastForwardEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastForwardEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFastRewindButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastRewindButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFastRewindButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastRewindButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFastRewindEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastRewindEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsFastRewindEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastRewindEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsStopButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStopButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsStopButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStopButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsStopEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStopEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsStopEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStopEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVolumeButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVolumeButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsVolumeButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVolumeButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVolumeEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVolumeEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsVolumeEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVolumeEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPlaybackRateButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPlaybackRateButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsPlaybackRateButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPlaybackRateButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPlaybackRateEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPlaybackRateEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsPlaybackRateEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPlaybackRateEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSeekBarVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSeekBarVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSeekBarVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSeekBarVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSeekEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSeekEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSeekEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSeekEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsCompact(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompact());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsCompact(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompact(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControls2> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControls2>
{
    HRESULT __stdcall get_IsSkipForwardButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipForwardButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSkipForwardButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipForwardButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSkipForwardEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipForwardEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSkipForwardEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipForwardEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSkipBackwardButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipBackwardButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSkipBackwardButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipBackwardButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSkipBackwardEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipBackwardEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSkipBackwardEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipBackwardEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsNextTrackButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsNextTrackButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsNextTrackButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsNextTrackButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPreviousTrackButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPreviousTrackButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsPreviousTrackButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPreviousTrackButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FastPlayFallbackBehaviour(Windows::UI::Xaml::Media::FastPlayFallbackBehaviour* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FastPlayFallbackBehaviour>(this->shim().FastPlayFallbackBehaviour());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FastPlayFallbackBehaviour(Windows::UI::Xaml::Media::FastPlayFallbackBehaviour value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FastPlayFallbackBehaviour(*reinterpret_cast<Windows::UI::Xaml::Media::FastPlayFallbackBehaviour const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ThumbnailRequested(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ThumbnailRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::MediaTransportControls, Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ThumbnailRequested(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ThumbnailRequested(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControls3> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControls3>
{
    HRESULT __stdcall get_ShowAndHideAutomatically(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowAndHideAutomatically());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ShowAndHideAutomatically(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAndHideAutomatically(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsRepeatEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRepeatEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsRepeatEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRepeatEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsRepeatButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRepeatButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsRepeatButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRepeatButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Show() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Show();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Hide() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Hide();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControls4> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControls4>
{
    HRESULT __stdcall get_IsCompactOverlayButtonVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompactOverlayButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsCompactOverlayButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompactOverlayButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsCompactOverlayEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompactOverlayEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsCompactOverlayEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompactOverlayEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_DropoutOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DropoutOrderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetDropoutOrder(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IReference<int32_t>>(this->shim().GetDropoutOrder(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetDropoutOrder(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDropoutOrder(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IReference<int32_t> const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>
{
    HRESULT __stdcall get_IsFullWindowButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFullWindowEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFastForwardButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastForwardButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFastForwardEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastForwardEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFastRewindButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastRewindButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsFastRewindEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastRewindEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsStopButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStopButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsStopEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsStopEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVolumeButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVolumeButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVolumeEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVolumeEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPlaybackRateButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPlaybackRateButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPlaybackRateEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPlaybackRateEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSeekBarVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSeekBarVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSeekEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSeekEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsCompactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>
{
    HRESULT __stdcall get_IsSkipForwardButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipForwardButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSkipForwardEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipForwardEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSkipBackwardButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipBackwardButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSkipBackwardEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipBackwardEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsNextTrackButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsNextTrackButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPreviousTrackButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPreviousTrackButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FastPlayFallbackBehaviourProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FastPlayFallbackBehaviourProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>
{
    HRESULT __stdcall get_ShowAndHideAutomaticallyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAndHideAutomaticallyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsRepeatEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRepeatEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsRepeatButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsRepeatButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>
{
    HRESULT __stdcall get_IsCompactOverlayButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactOverlayButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsCompactOverlayEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactOverlayEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyout> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyout>
{
    HRESULT __stdcall get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuFlyoutPresenterStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().MenuFlyoutPresenterStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MenuFlyoutPresenterStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuFlyoutPresenterStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyout2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyout2>
{
    HRESULT __stdcall ShowAt(void* targetElement, Windows::Foundation::Point point) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAt(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&targetElement), *reinterpret_cast<Windows::Foundation::Point const*>(&point));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::MenuFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem>
{
    HRESULT __stdcall get_Text(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Text(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Command(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Command(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Command(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Click(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Click(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Click(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Click(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem2>
{
    HRESULT __stdcall get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem3> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem3>
{
    HRESULT __stdcall get_KeyboardAcceleratorTextOverride(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_KeyboardAcceleratorTextOverride(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::MenuFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>
{
    HRESULT __stdcall get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandParameterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2>
{
    HRESULT __stdcall get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3>
{
    HRESULT __stdcall get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().KeyboardAcceleratorTextOverrideProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::MenuFlyoutPresenter>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::MenuFlyoutSeparator>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutStatics>
{
    HRESULT __stdcall get_MenuFlyoutPresenterStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuFlyoutPresenterStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItem> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>
{
    HRESULT __stdcall get_Items(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Text(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Text(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2>
{
    HRESULT __stdcall get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics>
{
    HRESULT __stdcall get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2>
{
    HRESULT __stdcall get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigate> : produce_base<D, Windows::UI::Xaml::Controls::INavigate>
{
    HRESULT __stdcall Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().Navigate(*reinterpret_cast<Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationView> : produce_base<D, Windows::UI::Xaml::Controls::INavigationView>
{
    HRESULT __stdcall get_IsPaneOpen(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsPaneOpen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsPaneOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneOpen(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompactModeThresholdWidth(double* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().CompactModeThresholdWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CompactModeThresholdWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompactModeThresholdWidth(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExpandedModeThresholdWidth(double* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().ExpandedModeThresholdWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ExpandedModeThresholdWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ExpandedModeThresholdWidth(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaneFooter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PaneFooter());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PaneFooter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneFooter(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayMode(Windows::UI::Xaml::Controls::NavigationViewDisplayMode* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::NavigationViewDisplayMode>(this->shim().DisplayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSettingsVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsSettingsVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSettingsVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSettingsVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPaneToggleButtonVisible(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsPaneToggleButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsPaneToggleButtonVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneToggleButtonVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlwaysShowHeader(bool* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().AlwaysShowHeader());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AlwaysShowHeader(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AlwaysShowHeader(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompactPaneLength(double* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().CompactPaneLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CompactPaneLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompactPaneLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OpenPaneLength(double* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().OpenPaneLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OpenPaneLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpenPaneLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaneToggleButtonStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().PaneToggleButtonStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PaneToggleButtonStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneToggleButtonStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().MenuItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemsSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().MenuItemsSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MenuItemsSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemsSource(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SettingsItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SettingsItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AutoSuggestBox(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::AutoSuggestBox>(this->shim().AutoSuggestBox());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AutoSuggestBox(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoSuggestBox(*reinterpret_cast<Windows::UI::Xaml::Controls::AutoSuggestBox const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().MenuItemTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MenuItemTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemTemplateSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().MenuItemTemplateSelector());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MenuItemTemplateSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemTemplateSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemContainerStyle(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Style>(this->shim().MenuItemContainerStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MenuItemContainerStyle(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemContainerStyle(*reinterpret_cast<Windows::UI::Xaml::Style const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemContainerStyleSelector(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().MenuItemContainerStyleSelector());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MenuItemContainerStyleSelector(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemContainerStyleSelector(*reinterpret_cast<Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall MenuItemFromContainer(void* container, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IInspectable>(this->shim().MenuItemFromContainer(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&container)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ContainerFromMenuItem(void* item, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromMenuItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&item)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SelectionChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SelectionChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ItemInvoked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ItemInvoked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ItemInvoked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemInvoked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DisplayModeChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DisplayModeChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DisplayModeChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayModeChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationView2> : produce_base<D, Windows::UI::Xaml::Controls::INavigationView2>
{
    HRESULT __stdcall get_IsBackButtonVisible(Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible>(this->shim().IsBackButtonVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsBackButtonVisible(Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsBackButtonVisible(*reinterpret_cast<Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsBackEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsBackEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsBackEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsBackEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaneTitle(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PaneTitle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PaneTitle(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneTitle(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_BackRequested(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().BackRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_BackRequested(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackRequested(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PaneClosed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PaneClosed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PaneClosed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PaneClosing(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PaneClosing(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PaneClosing(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosing(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PaneOpened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PaneOpened(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PaneOpened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PaneOpening(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PaneOpening(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::NavigationView, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PaneOpening(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpening(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_DisplayMode(Windows::UI::Xaml::Controls::NavigationViewDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::NavigationViewDisplayMode>(this->shim().DisplayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::NavigationView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItem> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItem>
{
    HRESULT __stdcall get_Icon(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Icon(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompactPaneLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::NavigationViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemHeader>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs>
{
    HRESULT __stdcall get_InvokedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().InvokedItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSettingsInvoked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSettingsInvoked());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::NavigationViewItemSeparator>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationViewItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewItemStatics>
{
    HRESULT __stdcall get_IconProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompactPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::NavigationViewList>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs>
{
    HRESULT __stdcall get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs>
{
    HRESULT __stdcall get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSettingsSelected(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSettingsSelected());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewStatics>
{
    HRESULT __stdcall get_IsPaneOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneOpenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompactModeThresholdWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactModeThresholdWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExpandedModeThresholdWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedModeThresholdWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaneFooterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneFooterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSettingsVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSettingsVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPaneToggleButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneToggleButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlwaysShowHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlwaysShowHeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompactPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OpenPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpenPaneLengthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaneToggleButtonStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneToggleButtonStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemsSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemsSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedItemProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SettingsItemProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SettingsItemProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AutoSuggestBoxProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AutoSuggestBoxProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemTemplateSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemTemplateSelectorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemContainerStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemContainerStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MenuItemContainerStyleSelectorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemContainerStyleSelectorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INavigationViewStatics2> : produce_base<D, Windows::UI::Xaml::Controls::INavigationViewStatics2>
{
    HRESULT __stdcall get_IsBackButtonVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsBackButtonVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsBackEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsBackEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaneTitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneTitleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INotifyEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::INotifyEventArgs>
{
    HRESULT __stdcall get_Value(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Value());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::INotifyEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::INotifyEventArgs2>
{
    HRESULT __stdcall get_CallingUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().CallingUri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPage> : produce_base<D, Windows::UI::Xaml::Controls::IPage>
{
    HRESULT __stdcall get_Frame(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Frame>(this->shim().Frame());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NavigationCacheMode(Windows::UI::Xaml::Navigation::NavigationCacheMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Navigation::NavigationCacheMode>(this->shim().NavigationCacheMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_NavigationCacheMode(Windows::UI::Xaml::Navigation::NavigationCacheMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationCacheMode(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationCacheMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TopAppBar(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBar>(this->shim().TopAppBar());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TopAppBar(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopAppBar(*reinterpret_cast<Windows::UI::Xaml::Controls::AppBar const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BottomAppBar(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::AppBar>(this->shim().BottomAppBar());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BottomAppBar(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BottomAppBar(*reinterpret_cast<Windows::UI::Xaml::Controls::AppBar const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPageFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPageFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Page>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPageOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IPageOverrides>
{
    HRESULT __stdcall OnNavigatedFrom(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnNavigatedFrom(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnNavigatedTo(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnNavigatedTo(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigationEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnNavigatingFrom(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnNavigatingFrom(*reinterpret_cast<Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPageStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPageStatics>
{
    HRESULT __stdcall get_FrameProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FrameProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TopAppBarProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopAppBarProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BottomAppBarProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BottomAppBarProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPanel> : produce_base<D, Windows::UI::Xaml::Controls::IPanel>
{
    HRESULT __stdcall get_Children(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::UIElementCollection>(this->shim().Children());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsItemsHost(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsItemsHost());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ChildrenTransitions(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ChildrenTransitions());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ChildrenTransitions(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChildrenTransitions(*reinterpret_cast<Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPanelFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Panel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPanelStatics>
{
    HRESULT __stdcall get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsItemsHostProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsItemsHostProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ChildrenTransitionsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildrenTransitionsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IParallaxView> : produce_base<D, Windows::UI::Xaml::Controls::IParallaxView>
{
    HRESULT __stdcall get_Child(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Child());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Child(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Child(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalShift(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalShift());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalShift(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalShift(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalSourceEndOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalSourceEndOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalSourceEndOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSourceEndOffset(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind>(this->shim().HorizontalSourceOffsetKind());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSourceOffsetKind(*reinterpret_cast<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalSourceStartOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalSourceStartOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalSourceStartOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSourceStartOffset(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHorizontalShiftClamped(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHorizontalShiftClamped());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsHorizontalShiftClamped(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHorizontalShiftClamped(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVerticalShiftClamped(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVerticalShiftClamped());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsVerticalShiftClamped(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVerticalShiftClamped(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxHorizontalShiftRatio(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxHorizontalShiftRatio());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxHorizontalShiftRatio(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxHorizontalShiftRatio(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxVerticalShiftRatio(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxVerticalShiftRatio());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxVerticalShiftRatio(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxVerticalShiftRatio(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Source());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalShift(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalShift());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalShift(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalShift(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSourceEndOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalSourceEndOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalSourceEndOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSourceEndOffset(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind>(this->shim().VerticalSourceOffsetKind());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalSourceOffsetKind(Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSourceOffsetKind(*reinterpret_cast<Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSourceStartOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalSourceStartOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalSourceStartOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSourceStartOffset(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RefreshAutomaticHorizontalOffsets() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshAutomaticHorizontalOffsets();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RefreshAutomaticVerticalOffsets() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshAutomaticVerticalOffsets();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IParallaxViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::IParallaxViewFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ParallaxView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IParallaxViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::IParallaxViewStatics>
{
    HRESULT __stdcall get_ChildProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChildProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalSourceEndOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceEndOffsetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalSourceOffsetKindProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceOffsetKindProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalSourceStartOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceStartOffsetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxHorizontalShiftRatioProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHorizontalShiftRatioProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalShiftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalShiftProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHorizontalShiftClampedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalShiftClampedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVerticalShiftClampedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalShiftClampedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSourceEndOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceEndOffsetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSourceOffsetKindProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceOffsetKindProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSourceStartOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceStartOffsetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxVerticalShiftRatioProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxVerticalShiftRatioProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalShiftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalShiftProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPasswordBox> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBox>
{
    HRESULT __stdcall get_Password(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Password());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Password(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Password(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PasswordChar(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PasswordChar());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PasswordChar(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordChar(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPasswordRevealButtonEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPasswordRevealButtonEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsPasswordRevealButtonEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPasswordRevealButtonEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxLength(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PasswordChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PasswordChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PasswordChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContextMenuOpening(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContextMenuOpening(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPasswordBox2> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBox2>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Paste(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Paste(*reinterpret_cast<Windows::UI::Xaml::Controls::TextControlPasteEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Paste(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Paste(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPasswordBox3> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBox3>
{
    HRESULT __stdcall get_PasswordRevealMode(Windows::UI::Xaml::Controls::PasswordRevealMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PasswordRevealMode>(this->shim().PasswordRevealMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PasswordRevealMode(Windows::UI::Xaml::Controls::PasswordRevealMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordRevealMode(*reinterpret_cast<Windows::UI::Xaml::Controls::PasswordRevealMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InputScope(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_InputScope(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputScope(*reinterpret_cast<Windows::UI::Xaml::Input::InputScope const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPasswordBox4> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBox4>
{
    HRESULT __stdcall add_PasswordChanging(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PasswordChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PasswordBox, Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PasswordChanging(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordChanging(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs>
{
    HRESULT __stdcall get_IsContentChanging(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContentChanging());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics>
{
    HRESULT __stdcall get_PasswordProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PasswordCharProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordCharProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPasswordRevealButtonEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPasswordRevealButtonEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>
{
    HRESULT __stdcall get_PasswordRevealModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordRevealModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InputScopeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InputScopeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPathIcon> : produce_base<D, Windows::UI::Xaml::Controls::IPathIcon>
{
    HRESULT __stdcall get_Data(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Geometry>(this->shim().Data());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Data(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Data(*reinterpret_cast<Windows::UI::Xaml::Media::Geometry const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPathIconFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::PathIcon>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPathIconSource> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconSource>
{
    HRESULT __stdcall get_Data(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Geometry>(this->shim().Data());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Data(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Data(*reinterpret_cast<Windows::UI::Xaml::Media::Geometry const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPathIconSourceFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconSourceFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::PathIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPathIconSourceStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconSourceStatics>
{
    HRESULT __stdcall get_DataProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DataProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPathIconStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPathIconStatics>
{
    HRESULT __stdcall get_DataProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DataProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPersonPicture> : produce_base<D, Windows::UI::Xaml::Controls::IPersonPicture>
{
    HRESULT __stdcall get_BadgeNumber(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().BadgeNumber());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BadgeNumber(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeNumber(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BadgeGlyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().BadgeGlyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BadgeGlyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeGlyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BadgeImageSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().BadgeImageSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BadgeImageSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeImageSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BadgeText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().BadgeText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BadgeText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsGroup(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGroup());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsGroup(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsGroup(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Contact(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Contacts::Contact>(this->shim().Contact());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Contact(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Contact(*reinterpret_cast<Windows::ApplicationModel::Contacts::Contact const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayName(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisplayName());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DisplayName(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayName(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Initials(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Initials());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Initials(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Initials(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreferSmallImage(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreferSmallImage());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PreferSmallImage(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreferSmallImage(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ProfilePicture(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().ProfilePicture());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ProfilePicture(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ProfilePicture(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPersonPictureFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPersonPictureFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::PersonPicture>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPersonPictureStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPersonPictureStatics>
{
    HRESULT __stdcall get_BadgeNumberProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeNumberProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BadgeGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeGlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BadgeImageSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeImageSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BadgeTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsGroupProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContactProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContactProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayNameProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayNameProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InitialsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InitialsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreferSmallImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreferSmallImageProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ProfilePictureProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ProfilePictureProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ConfirmationButtonsVisible(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ConfirmationButtonsVisible());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ConfirmationButtonsVisible(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ConfirmationButtonsVisible(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Confirmed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Confirmed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::PickerFlyout, Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Confirmed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Confirmed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ShowAtAsync(void* target, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<bool>>(this->shim().ShowAtAsync(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ConfirmationButtonsVisibleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ConfirmationButtonsVisibleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivot> : produce_base<D, Windows::UI::Xaml::Controls::IPivot>
{
    HRESULT __stdcall get_Title(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Title());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Title(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TitleTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().TitleTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TitleTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TitleTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectedIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedIndex(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedIndex(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedItem(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsLocked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsLocked());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsLocked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsLocked(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SelectionChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::SelectionChangedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SelectionChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PivotItemLoading(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PivotItemLoading(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PivotItemLoading(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemLoading(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PivotItemLoaded(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PivotItemLoaded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PivotItemLoaded(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemLoaded(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PivotItemUnloading(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PivotItemUnloading(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PivotItemUnloading(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemUnloading(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PivotItemUnloaded(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PivotItemUnloaded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PivotItemUnloaded(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemUnloaded(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivot2> : produce_base<D, Windows::UI::Xaml::Controls::IPivot2>
{
    HRESULT __stdcall get_LeftHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().LeftHeader());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LeftHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftHeader(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LeftHeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().LeftHeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LeftHeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftHeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RightHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().RightHeader());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_RightHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RightHeader(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RightHeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().RightHeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_RightHeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RightHeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivot3> : produce_base<D, Windows::UI::Xaml::Controls::IPivot3>
{
    HRESULT __stdcall get_HeaderFocusVisualPlacement(Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement>(this->shim().HeaderFocusVisualPlacement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderFocusVisualPlacement(Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderFocusVisualPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHeaderItemsCarouselEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHeaderItemsCarouselEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsHeaderItemsCarouselEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHeaderItemsCarouselEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivotFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPivotFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Pivot>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivotItem> : produce_base<D, Windows::UI::Xaml::Controls::IPivotItem>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivotItemEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IPivotItemEventArgs>
{
    HRESULT __stdcall get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PivotItem>(this->shim().Item());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Item(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Item(*reinterpret_cast<Windows::UI::Xaml::Controls::PivotItem const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivotItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IPivotItemFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::PivotItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivotItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPivotItemStatics>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivotStatics> : produce_base<D, Windows::UI::Xaml::Controls::IPivotStatics>
{
    HRESULT __stdcall get_TitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TitleTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedIndexProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedIndexProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedItemProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsLockedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsLockedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SlideInAnimationGroupProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SlideInAnimationGroupProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetSlideInAnimationGroup(void* element, Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup>(this->shim().GetSlideInAnimationGroup(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetSlideInAnimationGroup(void* element, Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSlideInAnimationGroup(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivotStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IPivotStatics2>
{
    HRESULT __stdcall get_LeftHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LeftHeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RightHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightHeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RightHeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightHeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IPivotStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IPivotStatics3>
{
    HRESULT __stdcall get_HeaderFocusVisualPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderFocusVisualPlacementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHeaderItemsCarouselEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHeaderItemsCarouselEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IProgressBar> : produce_base<D, Windows::UI::Xaml::Controls::IProgressBar>
{
    HRESULT __stdcall get_IsIndeterminate(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsIndeterminate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsIndeterminate(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsIndeterminate(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ShowError(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowError());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ShowError(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowError(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ShowPaused(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowPaused());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ShowPaused(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowPaused(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IProgressBarFactory> : produce_base<D, Windows::UI::Xaml::Controls::IProgressBarFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ProgressBar>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IProgressBarStatics> : produce_base<D, Windows::UI::Xaml::Controls::IProgressBarStatics>
{
    HRESULT __stdcall get_IsIndeterminateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsIndeterminateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ShowErrorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowErrorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ShowPausedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ShowPausedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IProgressRing> : produce_base<D, Windows::UI::Xaml::Controls::IProgressRing>
{
    HRESULT __stdcall get_IsActive(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsActive());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsActive(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsActive(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IProgressRingStatics> : produce_base<D, Windows::UI::Xaml::Controls::IProgressRingStatics>
{
    HRESULT __stdcall get_IsActiveProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRadioButton> : produce_base<D, Windows::UI::Xaml::Controls::IRadioButton>
{
    HRESULT __stdcall get_GroupName(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().GroupName());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GroupName(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupName(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRadioButtonFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRadioButtonFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::RadioButton>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRadioButtonStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRadioButtonStatics>
{
    HRESULT __stdcall get_GroupNameProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GroupNameProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRatingControl> : produce_base<D, Windows::UI::Xaml::Controls::IRatingControl>
{
    HRESULT __stdcall get_Caption(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Caption());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Caption(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Caption(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InitialSetValue(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().InitialSetValue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_InitialSetValue(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InitialSetValue(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsClearEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsClearEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsClearEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsClearEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsReadOnly(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsReadOnly(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsReadOnly(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxRating(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxRating());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxRating(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxRating(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderValue(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().PlaceholderValue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderValue(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderValue(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemInfo(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RatingItemInfo>(this->shim().ItemInfo());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemInfo(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemInfo(*reinterpret_cast<Windows::UI::Xaml::Controls::RatingItemInfo const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Value(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Value());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Value(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Value(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ValueChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ValueChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RatingControl, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ValueChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ValueChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRatingControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRatingControlFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::RatingControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRatingControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRatingControlStatics>
{
    HRESULT __stdcall get_CaptionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CaptionProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InitialSetValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InitialSetValueProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsClearEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsClearEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsReadOnlyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxRatingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxRatingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderValueProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemInfoProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemInfoProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ValueProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRatingItemFontInfo> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemFontInfo>
{
    HRESULT __stdcall get_DisabledGlyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisabledGlyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DisabledGlyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledGlyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Glyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Glyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Glyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PointerOverGlyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PointerOverGlyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PointerOverGlyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverGlyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PointerOverPlaceholderGlyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PointerOverPlaceholderGlyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PointerOverPlaceholderGlyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverPlaceholderGlyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderGlyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderGlyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderGlyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderGlyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_UnsetGlyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().UnsetGlyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_UnsetGlyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsetGlyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::RatingItemFontInfo>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>
{
    HRESULT __stdcall get_DisabledGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledGlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderGlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PointerOverGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverGlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PointerOverPlaceholderGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverPlaceholderGlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_UnsetGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UnsetGlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRatingItemImageInfo> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemImageInfo>
{
    HRESULT __stdcall get_DisabledImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().DisabledImage());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DisabledImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Image(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().Image());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Image(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Image(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PlaceholderImage());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PointerOverImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PointerOverImage());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PointerOverImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PointerOverPlaceholderImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().PointerOverPlaceholderImage());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PointerOverPlaceholderImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverPlaceholderImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_UnsetImage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().UnsetImage());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_UnsetImage(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsetImage(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::RatingItemImageInfo>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>
{
    HRESULT __stdcall get_DisabledImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledImageProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ImageProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderImageProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PointerOverImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverImageProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PointerOverPlaceholderImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverPlaceholderImageProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_UnsetImageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().UnsetImageProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::RatingItemInfo>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRefreshContainer> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshContainer>
{
    HRESULT __stdcall get_Visualizer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizer>(this->shim().Visualizer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Visualizer(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Visualizer(*reinterpret_cast<Windows::UI::Xaml::Controls::RefreshVisualizer const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PullDirection(Windows::UI::Xaml::Controls::RefreshPullDirection* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshPullDirection>(this->shim().PullDirection());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PullDirection(Windows::UI::Xaml::Controls::RefreshPullDirection value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PullDirection(*reinterpret_cast<Windows::UI::Xaml::Controls::RefreshPullDirection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_RefreshRequested(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().RefreshRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshContainer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_RefreshRequested(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshRequested(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RequestRefresh() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RequestRefresh();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRefreshContainerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshContainerFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::RefreshContainer>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRefreshContainerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshContainerStatics>
{
    HRESULT __stdcall get_VisualizerProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VisualizerProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PullDirectionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PullDirectionProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs>
{
    HRESULT __stdcall get_InteractionRatio(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().InteractionRatio());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs>
{
    HRESULT __stdcall GetDeferral(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Deferral>(this->shim().GetDeferral());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs>
{
    HRESULT __stdcall get_OldState(Windows::UI::Xaml::Controls::RefreshVisualizerState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().OldState());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NewState(Windows::UI::Xaml::Controls::RefreshVisualizerState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().NewState());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRefreshVisualizer> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshVisualizer>
{
    HRESULT __stdcall RequestRefresh() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RequestRefresh();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::RefreshVisualizerOrientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerOrientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::RefreshVisualizerOrientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::RefreshVisualizerOrientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_State(Windows::UI::Xaml::Controls::RefreshVisualizerState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().State());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_RefreshRequested(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().RefreshRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_RefreshRequested(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshRequested(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_RefreshStateChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().RefreshStateChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_RefreshStateChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshStateChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRefreshVisualizerFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::RefreshVisualizer>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>
{
    HRESULT __stdcall get_InfoProviderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InfoProviderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRelativePanel> : produce_base<D, Windows::UI::Xaml::Controls::IRelativePanel>
{
    HRESULT __stdcall get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRelativePanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRelativePanelFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::RelativePanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRelativePanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRelativePanelStatics>
{
    HRESULT __stdcall get_LeftOfProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftOfProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetLeftOf(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetLeftOf(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetLeftOf(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLeftOf(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AboveProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AboveProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAbove(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAbove(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAbove(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAbove(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RightOfProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightOfProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetRightOf(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetRightOf(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetRightOf(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRightOf(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BelowProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BelowProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetBelow(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetBelow(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetBelow(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetBelow(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignHorizontalCenterWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignHorizontalCenterWithProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignHorizontalCenterWith(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignHorizontalCenterWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignHorizontalCenterWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignHorizontalCenterWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignVerticalCenterWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignVerticalCenterWithProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignVerticalCenterWith(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignVerticalCenterWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignVerticalCenterWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignVerticalCenterWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignLeftWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignLeftWithProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignLeftWith(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignLeftWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignLeftWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignLeftWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignTopWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignTopWithProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignTopWith(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignTopWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignTopWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignTopWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignRightWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignRightWithProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignRightWith(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignRightWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignRightWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignRightWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignBottomWithProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignBottomWithProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignBottomWith(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetAlignBottomWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignBottomWith(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignBottomWith(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignLeftWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignLeftWithPanelProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignLeftWithPanel(void* element, bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().GetAlignLeftWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignLeftWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignLeftWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignTopWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignTopWithPanelProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignTopWithPanel(void* element, bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().GetAlignTopWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignTopWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignTopWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignRightWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignRightWithPanelProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignRightWithPanel(void* element, bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().GetAlignRightWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignRightWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignRightWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignBottomWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignBottomWithPanelProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignBottomWithPanel(void* element, bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().GetAlignBottomWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignBottomWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignBottomWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignHorizontalCenterWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignHorizontalCenterWithPanelProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignHorizontalCenterWithPanel(void* element, bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().GetAlignHorizontalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignHorizontalCenterWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignHorizontalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AlignVerticalCenterWithPanelProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AlignVerticalCenterWithPanelProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetAlignVerticalCenterWithPanel(void* element, bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().GetAlignVerticalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetAlignVerticalCenterWithPanel(void* element, bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignVerticalCenterWithPanel(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox>
{
    HRESULT __stdcall get_IsReadOnly(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsReadOnly(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsReadOnly(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AcceptsReturn(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AcceptsReturn());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AcceptsReturn(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AcceptsReturn(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSpellCheckEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSpellCheckEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSpellCheckEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSpellCheckEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextPredictionEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextPredictionEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextPredictionEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextPredictionEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Document(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::ITextDocument>(this->shim().Document());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InputScope(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_InputScope(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputScope(*reinterpret_cast<Windows::UI::Xaml::Input::InputScope const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TextChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SelectionChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SelectionChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContextMenuOpening(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContextMenuOpening(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox2> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox2>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorFontEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsColorFontEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Paste(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Paste(*reinterpret_cast<Windows::UI::Xaml::Controls::TextControlPasteEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Paste(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Paste(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox3> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox3>
{
    HRESULT __stdcall add_TextCompositionStarted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextCompositionStarted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextCompositionStarted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionStarted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TextCompositionChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextCompositionChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextCompositionChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TextCompositionEnded(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextCompositionEnded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextCompositionEnded(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionEnded(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CandidateWindowAlignment>(this->shim().DesiredCandidateWindowAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DesiredCandidateWindowAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::CandidateWindowAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CandidateWindowBoundsChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CandidateWindowBoundsChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TextChanging(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextChanging(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanging(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox4> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox4>
{
    HRESULT __stdcall GetLinguisticAlternativesAsync(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>>>(this->shim().GetLinguisticAlternativesAsync());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ClipboardCopyFormat(Windows::UI::Xaml::Controls::RichEditClipboardFormat* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RichEditClipboardFormat>(this->shim().ClipboardCopyFormat());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ClipboardCopyFormat(Windows::UI::Xaml::Controls::RichEditClipboardFormat value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClipboardCopyFormat(*reinterpret_cast<Windows::UI::Xaml::Controls::RichEditClipboardFormat const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox5> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox5>
{
    HRESULT __stdcall get_SelectionHighlightColorWhenNotFocused(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColorWhenNotFocused());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionHighlightColorWhenNotFocused(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColorWhenNotFocused(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxLength(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox6> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox6>
{
    HRESULT __stdcall get_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CharacterCasing>(this->shim().CharacterCasing());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterCasing(*reinterpret_cast<Windows::UI::Xaml::Controls::CharacterCasing const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisabledFormattingAccelerators(Windows::UI::Xaml::Controls::DisabledFormattingAccelerators* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::DisabledFormattingAccelerators>(this->shim().DisabledFormattingAccelerators());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DisabledFormattingAccelerators(Windows::UI::Xaml::Controls::DisabledFormattingAccelerators value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledFormattingAccelerators(*reinterpret_cast<Windows::UI::Xaml::Controls::DisabledFormattingAccelerators const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CopyingToClipboard(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CopyingToClipboard(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CopyingToClipboard(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopyingToClipboard(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CuttingToClipboard(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CuttingToClipboard(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CuttingToClipboard(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CuttingToClipboard(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBox7> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBox7>
{
    HRESULT __stdcall get_ContentLinkForegroundColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().ContentLinkForegroundColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentLinkForegroundColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkForegroundColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentLinkBackgroundColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().ContentLinkBackgroundColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentLinkBackgroundColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkBackgroundColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentLinkProviders(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::ContentLinkProviderCollection>(this->shim().ContentLinkProviders());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ContentLinkProviders(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkProviders(*reinterpret_cast<Windows::UI::Xaml::Documents::ContentLinkProviderCollection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HandwritingView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingView>(this->shim().HandwritingView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HandwritingView(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HandwritingView(*reinterpret_cast<Windows::UI::Xaml::Controls::HandwritingView const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHandwritingViewEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHandwritingViewEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsHandwritingViewEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHandwritingViewEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContentLinkChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContentLinkChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContentLinkChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContentLinkInvoked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContentLinkInvoked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Documents::ContentLinkInvokedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContentLinkInvoked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkInvoked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::RichEditBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics>
{
    HRESULT __stdcall get_IsReadOnlyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AcceptsReturnProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AcceptsReturnProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSpellCheckEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSpellCheckEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextPredictionEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextPredictionEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InputScopeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InputScopeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics3>
{
    HRESULT __stdcall get_DesiredCandidateWindowAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DesiredCandidateWindowAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics4>
{
    HRESULT __stdcall get_ClipboardCopyFormatProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClipboardCopyFormatProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics5>
{
    HRESULT __stdcall get_SelectionHighlightColorWhenNotFocusedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorWhenNotFocusedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics6> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>
{
    HRESULT __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterCasingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterCasingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisabledFormattingAcceleratorsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledFormattingAcceleratorsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics7> : produce_base<D, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>
{
    HRESULT __stdcall get_ContentLinkForegroundColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkForegroundColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentLinkBackgroundColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkBackgroundColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentLinkProvidersProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkProvidersProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HandwritingViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HandwritingViewProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHandwritingViewEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHandwritingViewEnabledProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_IsContentChanging(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContentChanging());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock>
{
    HRESULT __stdcall get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStretch(Windows::UI::Text::FontStretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStretch(Windows::UI::Text::FontStretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextTrimming(Windows::UI::Xaml::TextTrimming* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextTrimming>(this->shim().TextTrimming());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextTrimming(Windows::UI::Xaml::TextTrimming value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextTrimming(*reinterpret_cast<Windows::UI::Xaml::TextTrimming const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Blocks(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::BlockCollection>(this->shim().Blocks());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().LineHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LineHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineStackingStrategy(*reinterpret_cast<Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterSpacing(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CharacterSpacing(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OverflowContentTarget(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RichTextBlockOverflow>(this->shim().OverflowContentTarget());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OverflowContentTarget(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowContentTarget(*reinterpret_cast<Windows::UI::Xaml::Controls::RichTextBlockOverflow const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextSelectionEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextSelectionEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextSelectionEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextSelectionEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HasOverflowContent(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasOverflowContent());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionStart());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionEnd());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BaselineOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BaselineOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SelectionChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SelectionChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContextMenuOpening(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContextMenuOpening(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Select(void* start, void* end) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Select(*reinterpret_cast<Windows::UI::Xaml::Documents::TextPointer const*>(&start), *reinterpret_cast<Windows::UI::Xaml::Documents::TextPointer const*>(&end));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetPositionFromPoint(Windows::Foundation::Point point, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().GetPositionFromPoint(*reinterpret_cast<Windows::Foundation::Point const*>(&point)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Focus(Windows::UI::Xaml::FocusState value, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextIndent(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().TextIndent());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextIndent(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextIndent(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock2> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock2>
{
    HRESULT __stdcall get_MaxLines(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxLines(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextLineBounds(Windows::UI::Xaml::TextLineBounds* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextLineBounds(Windows::UI::Xaml::TextLineBounds value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextLineBounds(*reinterpret_cast<Windows::UI::Xaml::TextLineBounds const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpticalMarginAlignment(*reinterpret_cast<Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorFontEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsColorFontEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock3> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock3>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock4> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock4>
{
    HRESULT __stdcall get_TextDecorations(Windows::UI::Text::TextDecorations* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::TextDecorations>(this->shim().TextDecorations());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextDecorations(Windows::UI::Text::TextDecorations value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextDecorations(*reinterpret_cast<Windows::UI::Text::TextDecorations const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlock5> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlock5>
{
    HRESULT __stdcall get_IsTextTrimmed(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextHighlighters(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>>(this->shim().TextHighlighters());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_IsTextTrimmedChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().IsTextTrimmedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_IsTextTrimmedChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextTrimmedChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow>
{
    HRESULT __stdcall get_OverflowContentTarget(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RichTextBlockOverflow>(this->shim().OverflowContentTarget());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OverflowContentTarget(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowContentTarget(*reinterpret_cast<Windows::UI::Xaml::Controls::RichTextBlockOverflow const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::RichTextBlock>(this->shim().ContentSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HasOverflowContent(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasOverflowContent());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BaselineOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BaselineOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetPositionFromPoint(Windows::Foundation::Point point, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().GetPositionFromPoint(*reinterpret_cast<Windows::Foundation::Point const*>(&point)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Focus(Windows::UI::Xaml::FocusState value, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow2> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow2>
{
    HRESULT __stdcall get_MaxLines(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxLines(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow3> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>
{
    HRESULT __stdcall get_IsTextTrimmed(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_IsTextTrimmedChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().IsTextTrimmedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::RichTextBlockOverflow, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_IsTextTrimmedChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextTrimmedChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>
{
    HRESULT __stdcall get_OverflowContentTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowContentTargetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HasOverflowContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HasOverflowContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2>
{
    HRESULT __stdcall get_MaxLinesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3>
{
    HRESULT __stdcall get_IsTextTrimmedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics>
{
    HRESULT __stdcall get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextTrimmingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextTrimmingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineStackingStrategyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OverflowContentTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowContentTargetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextSelectionEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSelectionEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HasOverflowContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HasOverflowContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextIndentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextIndentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>
{
    HRESULT __stdcall get_MaxLinesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextLineBoundsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OpticalMarginAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics3>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics4>
{
    HRESULT __stdcall get_TextDecorationsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextDecorationsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IRichTextBlockStatics5>
{
    HRESULT __stdcall get_IsTextTrimmedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRowDefinition> : produce_base<D, Windows::UI::Xaml::Controls::IRowDefinition>
{
    HRESULT __stdcall get_Height(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::GridLength>(this->shim().Height());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Height(struct struct_Windows_UI_Xaml_GridLength value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Height(*reinterpret_cast<Windows::UI::Xaml::GridLength const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ActualHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ActualHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IRowDefinitionStatics> : produce_base<D, Windows::UI::Xaml::Controls::IRowDefinitionStatics>
{
    HRESULT __stdcall get_HeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IScrollContentPresenter> : produce_base<D, Windows::UI::Xaml::Controls::IScrollContentPresenter>
{
    HRESULT __stdcall get_CanVerticallyScroll(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanVerticallyScroll());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CanVerticallyScroll(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanVerticallyScroll(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanHorizontallyScroll(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanHorizontallyScroll());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CanHorizontallyScroll(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanHorizontallyScroll(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExtentWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExtentHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ViewportWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ViewportHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ScrollOwner(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().ScrollOwner());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ScrollOwner(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollOwner(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall LineUp() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineUp();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall LineDown() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineDown();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall LineLeft() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineLeft();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall LineRight() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineRight();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall PageUp() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageUp();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall PageDown() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageDown();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall PageLeft() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageLeft();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall PageRight() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageRight();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall MouseWheelUp() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelUp();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall MouseWheelDown() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelDown();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall MouseWheelLeft() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelLeft();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall MouseWheelRight() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelRight();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetHorizontalOffset(double offset) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHorizontalOffset(offset);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetVerticalOffset(double offset) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVerticalOffset(offset);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall MakeVisible(void* visual, Windows::Foundation::Rect rectangle, Windows::Foundation::Rect* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::Rect>(this->shim().MakeVisible(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&visual), *reinterpret_cast<Windows::Foundation::Rect const*>(&rectangle)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IScrollViewer> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewer>
{
    HRESULT __stdcall get_HorizontalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().HorizontalScrollBarVisibility());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().VerticalScrollBarVisibility());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalScrollBarVisibility(Windows::UI::Xaml::Controls::ScrollBarVisibility value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHorizontalRailEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHorizontalRailEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsHorizontalRailEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHorizontalRailEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVerticalRailEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVerticalRailEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsVerticalRailEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVerticalRailEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHorizontalScrollChainingEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHorizontalScrollChainingEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsHorizontalScrollChainingEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHorizontalScrollChainingEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVerticalScrollChainingEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVerticalScrollChainingEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsVerticalScrollChainingEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVerticalScrollChainingEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomChainingEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomChainingEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsZoomChainingEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomChainingEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsScrollInertiaEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsScrollInertiaEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsScrollInertiaEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsScrollInertiaEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomInertiaEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomInertiaEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsZoomInertiaEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomInertiaEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalScrollMode(Windows::UI::Xaml::Controls::ScrollMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().HorizontalScrollMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalScrollMode(Windows::UI::Xaml::Controls::ScrollMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalScrollMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalScrollMode(Windows::UI::Xaml::Controls::ScrollMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().VerticalScrollMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalScrollMode(Windows::UI::Xaml::Controls::ScrollMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalScrollMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomMode(Windows::UI::Xaml::Controls::ZoomMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ZoomMode>(this->shim().ZoomMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ZoomMode(Windows::UI::Xaml::Controls::ZoomMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomMode(*reinterpret_cast<Windows::UI::Xaml::Controls::ZoomMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment>(this->shim().HorizontalSnapPointsAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSnapPointsAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment>(this->shim().VerticalSnapPointsAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalSnapPointsAlignment(Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSnapPointsAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().HorizontalSnapPointsType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSnapPointsType(*reinterpret_cast<Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().VerticalSnapPointsType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSnapPointsType(*reinterpret_cast<Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().ZoomSnapPointsType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ZoomSnapPointsType(Windows::UI::Xaml::Controls::SnapPointsType value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomSnapPointsType(*reinterpret_cast<Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ViewportWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ScrollableWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ScrollableWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ComputedHorizontalScrollBarVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().ComputedHorizontalScrollBarVisibility());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExtentWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ViewportHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ScrollableHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ScrollableHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ComputedVerticalScrollBarVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().ComputedVerticalScrollBarVisibility());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExtentHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinZoomFactor(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().MinZoomFactor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinZoomFactor(float value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinZoomFactor(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxZoomFactor(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().MaxZoomFactor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxZoomFactor(float value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxZoomFactor(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomFactor(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().ZoomFactor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomSnapPoints(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<float>>(this->shim().ZoomSnapPoints());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ViewChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ViewChanged(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ViewChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ScrollToHorizontalOffset(double offset) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollToHorizontalOffset(offset);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ScrollToVerticalOffset(double offset) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollToVerticalOffset(offset);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ZoomToFactor(float factor) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomToFactor(factor);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall InvalidateScrollInfo() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InvalidateScrollInfo();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsDeferredScrollingEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDeferredScrollingEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsDeferredScrollingEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDeferredScrollingEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BringIntoViewOnFocusChange(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().BringIntoViewOnFocusChange());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BringIntoViewOnFocusChange(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BringIntoViewOnFocusChange(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IScrollViewer2> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewer2>
{
    HRESULT __stdcall get_TopLeftHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().TopLeftHeader());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TopLeftHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopLeftHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LeftHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().LeftHeader());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LeftHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TopHeader(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().TopHeader());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TopHeader(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopHeader(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ViewChanging(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ViewChanging(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ViewChanging(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChanging(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ChangeView(void* horizontalOffset, void* verticalOffset, void* zoomFactor, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ChangeViewWithOptionalAnimation(void* horizontalOffset, void* verticalOffset, void* zoomFactor, bool disableAnimation, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IScrollViewer3> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewer3>
{
    HRESULT __stdcall add_DirectManipulationStarted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DirectManipulationStarted(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DirectManipulationStarted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DirectManipulationStarted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DirectManipulationCompleted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DirectManipulationCompleted(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DirectManipulationCompleted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DirectManipulationCompleted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerStatics> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerStatics>
{
    HRESULT __stdcall get_HorizontalSnapPointsAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSnapPointsAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSnapPointsAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSnapPointsAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalSnapPointsTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSnapPointsTypeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalSnapPointsTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSnapPointsTypeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomSnapPointsTypeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomSnapPointsTypeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalOffsetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ViewportWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ViewportWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ScrollableWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ScrollableWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ComputedHorizontalScrollBarVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ComputedHorizontalScrollBarVisibilityProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExtentWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExtentWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalOffsetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ViewportHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ViewportHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ScrollableHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ScrollableHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ComputedVerticalScrollBarVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ComputedVerticalScrollBarVisibilityProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExtentHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExtentHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinZoomFactorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinZoomFactorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxZoomFactorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxZoomFactorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomFactorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomFactorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomSnapPointsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomSnapPointsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalScrollBarVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalScrollBarVisibilityProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetHorizontalScrollBarVisibility(void* element, Windows::UI::Xaml::Controls::ScrollBarVisibility* horizontalScrollBarVisibility) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *horizontalScrollBarVisibility = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().GetHorizontalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetHorizontalScrollBarVisibility(void* element, Windows::UI::Xaml::Controls::ScrollBarVisibility horizontalScrollBarVisibility) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHorizontalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&horizontalScrollBarVisibility));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalScrollBarVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalScrollBarVisibilityProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetVerticalScrollBarVisibility(void* element, Windows::UI::Xaml::Controls::ScrollBarVisibility* verticalScrollBarVisibility) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *verticalScrollBarVisibility = detach_from<Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().GetVerticalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetVerticalScrollBarVisibility(void* element, Windows::UI::Xaml::Controls::ScrollBarVisibility verticalScrollBarVisibility) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVerticalScrollBarVisibility(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&verticalScrollBarVisibility));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHorizontalRailEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalRailEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsHorizontalRailEnabled(void* element, bool* isHorizontalRailEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *isHorizontalRailEnabled = detach_from<bool>(this->shim().GetIsHorizontalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsHorizontalRailEnabled(void* element, bool isHorizontalRailEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsHorizontalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isHorizontalRailEnabled);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVerticalRailEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalRailEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsVerticalRailEnabled(void* element, bool* isVerticalRailEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *isVerticalRailEnabled = detach_from<bool>(this->shim().GetIsVerticalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsVerticalRailEnabled(void* element, bool isVerticalRailEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsVerticalRailEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isVerticalRailEnabled);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHorizontalScrollChainingEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalScrollChainingEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsHorizontalScrollChainingEnabled(void* element, bool* isHorizontalScrollChainingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *isHorizontalScrollChainingEnabled = detach_from<bool>(this->shim().GetIsHorizontalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsHorizontalScrollChainingEnabled(void* element, bool isHorizontalScrollChainingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsHorizontalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isHorizontalScrollChainingEnabled);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVerticalScrollChainingEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalScrollChainingEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsVerticalScrollChainingEnabled(void* element, bool* isVerticalScrollChainingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *isVerticalScrollChainingEnabled = detach_from<bool>(this->shim().GetIsVerticalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsVerticalScrollChainingEnabled(void* element, bool isVerticalScrollChainingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsVerticalScrollChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isVerticalScrollChainingEnabled);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomChainingEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomChainingEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsZoomChainingEnabled(void* element, bool* isZoomChainingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *isZoomChainingEnabled = detach_from<bool>(this->shim().GetIsZoomChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsZoomChainingEnabled(void* element, bool isZoomChainingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsZoomChainingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isZoomChainingEnabled);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsScrollInertiaEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsScrollInertiaEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsScrollInertiaEnabled(void* element, bool* isScrollInertiaEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *isScrollInertiaEnabled = detach_from<bool>(this->shim().GetIsScrollInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsScrollInertiaEnabled(void* element, bool isScrollInertiaEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsScrollInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isScrollInertiaEnabled);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomInertiaEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomInertiaEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsZoomInertiaEnabled(void* element, bool* isZoomInertiaEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *isZoomInertiaEnabled = detach_from<bool>(this->shim().GetIsZoomInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsZoomInertiaEnabled(void* element, bool isZoomInertiaEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsZoomInertiaEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isZoomInertiaEnabled);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalScrollModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalScrollModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetHorizontalScrollMode(void* element, Windows::UI::Xaml::Controls::ScrollMode* horizontalScrollMode) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *horizontalScrollMode = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().GetHorizontalScrollMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetHorizontalScrollMode(void* element, Windows::UI::Xaml::Controls::ScrollMode horizontalScrollMode) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHorizontalScrollMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&horizontalScrollMode));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalScrollModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalScrollModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetVerticalScrollMode(void* element, Windows::UI::Xaml::Controls::ScrollMode* verticalScrollMode) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *verticalScrollMode = detach_from<Windows::UI::Xaml::Controls::ScrollMode>(this->shim().GetVerticalScrollMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetVerticalScrollMode(void* element, Windows::UI::Xaml::Controls::ScrollMode verticalScrollMode) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVerticalScrollMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ScrollMode const*>(&verticalScrollMode));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetZoomMode(void* element, Windows::UI::Xaml::Controls::ZoomMode* zoomMode) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *zoomMode = detach_from<Windows::UI::Xaml::Controls::ZoomMode>(this->shim().GetZoomMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetZoomMode(void* element, Windows::UI::Xaml::Controls::ZoomMode zoomMode) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetZoomMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::ZoomMode const*>(&zoomMode));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsDeferredScrollingEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDeferredScrollingEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsDeferredScrollingEnabled(void* element, bool* isDeferredScrollingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *isDeferredScrollingEnabled = detach_from<bool>(this->shim().GetIsDeferredScrollingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetIsDeferredScrollingEnabled(void* element, bool isDeferredScrollingEnabled) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsDeferredScrollingEnabled(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), isDeferredScrollingEnabled);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BringIntoViewOnFocusChangeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BringIntoViewOnFocusChangeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetBringIntoViewOnFocusChange(void* element, bool* bringIntoViewOnFocusChange) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *bringIntoViewOnFocusChange = detach_from<bool>(this->shim().GetBringIntoViewOnFocusChange(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetBringIntoViewOnFocusChange(void* element, bool bringIntoViewOnFocusChange) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetBringIntoViewOnFocusChange(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), bringIntoViewOnFocusChange);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerStatics2>
{
    HRESULT __stdcall get_TopLeftHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopLeftHeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LeftHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TopHeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopHeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerView> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerView>
{
    HRESULT __stdcall get_HorizontalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomFactor(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().ZoomFactor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs>
{
    HRESULT __stdcall get_IsIntermediate(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsIntermediate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>
{
    HRESULT __stdcall get_NextView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollViewerView>(this->shim().NextView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FinalView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ScrollViewerView>(this->shim().FinalView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsInertial(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsInertial());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISearchBox> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBox>
{
    HRESULT __stdcall get_SearchHistoryEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SearchHistoryEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SearchHistoryEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SearchHistoryEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SearchHistoryContext(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SearchHistoryContext());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SearchHistoryContext(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SearchHistoryContext(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_QueryText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_QueryText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QueryText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FocusOnKeyboardInput(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().FocusOnKeyboardInput());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FocusOnKeyboardInput(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusOnKeyboardInput(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ChooseSuggestionOnEnter(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ChooseSuggestionOnEnter());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ChooseSuggestionOnEnter(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChooseSuggestionOnEnter(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_QueryChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().QueryChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_QueryChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QueryChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SuggestionsRequested(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SuggestionsRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SuggestionsRequested(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SuggestionsRequested(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_QuerySubmitted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().QuerySubmitted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_QuerySubmitted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QuerySubmitted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ResultSuggestionChosen(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ResultSuggestionChosen(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ResultSuggestionChosen(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ResultSuggestionChosen(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PrepareForFocusOnKeyboardInput(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PrepareForFocusOnKeyboardInput(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::RoutedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PrepareForFocusOnKeyboardInput(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrepareForFocusOnKeyboardInput(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetLocalContentSuggestionSettings(void* settings) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLocalContentSuggestionSettings(*reinterpret_cast<Windows::ApplicationModel::Search::LocalContentSuggestionSettings const*>(&settings));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::SearchBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>
{
    HRESULT __stdcall get_QueryText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Language(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Language());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LinguisticDetails(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>
{
    HRESULT __stdcall get_QueryText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Language(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Language());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LinguisticDetails(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_KeyModifiers(Windows::System::VirtualKeyModifiers* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::System::VirtualKeyModifiers>(this->shim().KeyModifiers());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs>
{
    HRESULT __stdcall get_Tag(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Tag());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_KeyModifiers(Windows::System::VirtualKeyModifiers* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::System::VirtualKeyModifiers>(this->shim().KeyModifiers());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxStatics>
{
    HRESULT __stdcall get_SearchHistoryEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SearchHistoryEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SearchHistoryContextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SearchHistoryContextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_QueryTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().QueryTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FocusOnKeyboardInputProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FocusOnKeyboardInputProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ChooseSuggestionOnEnterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ChooseSuggestionOnEnterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>
{
    HRESULT __stdcall get_QueryText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Language(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Language());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LinguisticDetails(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Request(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::Search::SearchSuggestionsRequest>(this->shim().Request());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs>
{
    HRESULT __stdcall get_AddedSections(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().AddedSections());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RemovedSections(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::HubSection>>(this->shim().RemovedSections());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_AddedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().AddedItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RemovedItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable>>(this->shim().RemovedItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>
{
    HRESULT __stdcall CreateInstanceWithRemovedItemsAndAddedItems(void* removedItems, void* addedItems, void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = 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*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoom> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoom>
{
    HRESULT __stdcall get_ZoomedInView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ISemanticZoomInformation>(this->shim().ZoomedInView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ZoomedInView(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomedInView(*reinterpret_cast<Windows::UI::Xaml::Controls::ISemanticZoomInformation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomedOutView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ISemanticZoomInformation>(this->shim().ZoomedOutView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ZoomedOutView(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomedOutView(*reinterpret_cast<Windows::UI::Xaml::Controls::ISemanticZoomInformation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomedInViewActive(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomedInViewActive());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsZoomedInViewActive(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomedInViewActive(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanChangeViews(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanChangeViews());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CanChangeViews(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanChangeViews(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ViewChangeStarted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ViewChangeStarted(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ViewChangeStarted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChangeStarted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ViewChangeCompleted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ViewChangeCompleted(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ViewChangeCompleted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChangeCompleted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ToggleActiveView() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ToggleActiveView();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomOutButtonEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomOutButtonEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsZoomOutButtonEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomOutButtonEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoomInformation> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoomInformation>
{
    HRESULT __stdcall get_SemanticZoomOwner(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SemanticZoom>(this->shim().SemanticZoomOwner());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SemanticZoomOwner(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SemanticZoomOwner(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoom const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsActiveView(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsActiveView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsActiveView(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsActiveView(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomedInView(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomedInView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsZoomedInView(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomedInView(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall InitializeViewChange() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InitializeViewChange();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall CompleteViewChange() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompleteViewChange();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall MakeVisible(void* item) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MakeVisible(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&item));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall StartViewChangeFrom(void* source, void* destination) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StartViewChangeFrom(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall StartViewChangeTo(void* source, void* destination) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StartViewChangeTo(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall CompleteViewChangeFrom(void* source, void* destination) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompleteViewChangeFrom(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall CompleteViewChangeTo(void* source, void* destination) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompleteViewChangeTo(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoomLocation> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoomLocation>
{
    HRESULT __stdcall get_Item(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Item());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Item(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Item(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Bounds(Windows::Foundation::Rect* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Rect>(this->shim().Bounds());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Bounds(Windows::Foundation::Rect value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Bounds(*reinterpret_cast<Windows::Foundation::Rect const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoomStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoomStatics>
{
    HRESULT __stdcall get_ZoomedInViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomedInViewProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ZoomedOutViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomedOutViewProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomedInViewActiveProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewActiveProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanChangeViewsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanChangeViewsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsZoomOutButtonEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomOutButtonEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>
{
    HRESULT __stdcall get_IsSourceZoomedInView(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSourceZoomedInView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSourceZoomedInView(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSourceZoomedInView(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SourceItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SemanticZoomLocation>(this->shim().SourceItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SourceItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SourceItem(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DestinationItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SemanticZoomLocation>(this->shim().DestinationItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DestinationItem(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DestinationItem(*reinterpret_cast<Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISettingsFlyout> : produce_base<D, Windows::UI::Xaml::Controls::ISettingsFlyout>
{
    HRESULT __stdcall get_Title(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Title());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Title(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderBackground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().HeaderBackground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderBackground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().HeaderForeground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IconSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::ImageSource>(this->shim().IconSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IconSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IconSource(*reinterpret_cast<Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_BackClick(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().BackClick(*reinterpret_cast<Windows::UI::Xaml::Controls::BackClickEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_BackClick(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackClick(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Show() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Show();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ShowIndependent() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowIndependent();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Hide() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Hide();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISettingsFlyoutFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::SettingsFlyout>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>
{
    HRESULT __stdcall get_TitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderBackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderBackgroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IconSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISlider> : produce_base<D, Windows::UI::Xaml::Controls::ISlider>
{
    HRESULT __stdcall get_IntermediateValue(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().IntermediateValue());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IntermediateValue(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IntermediateValue(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StepFrequency(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().StepFrequency());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_StepFrequency(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StepFrequency(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SnapsTo(Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo>(this->shim().SnapsTo());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SnapsTo(Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SnapsTo(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TickFrequency(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().TickFrequency());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TickFrequency(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TickFrequency(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TickPlacement(Windows::UI::Xaml::Controls::Primitives::TickPlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::TickPlacement>(this->shim().TickPlacement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TickPlacement(Windows::UI::Xaml::Controls::Primitives::TickPlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TickPlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::TickPlacement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsDirectionReversed(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDirectionReversed());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsDirectionReversed(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDirectionReversed(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsThumbToolTipEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsThumbToolTipEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsThumbToolTipEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsThumbToolTipEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ThumbToolTipValueConverter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Data::IValueConverter>(this->shim().ThumbToolTipValueConverter());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ThumbToolTipValueConverter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ThumbToolTipValueConverter(*reinterpret_cast<Windows::UI::Xaml::Data::IValueConverter const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISlider2> : produce_base<D, Windows::UI::Xaml::Controls::ISlider2>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISliderFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISliderFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::Slider>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISliderStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISliderStatics>
{
    HRESULT __stdcall get_IntermediateValueProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IntermediateValueProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StepFrequencyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StepFrequencyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SnapsToProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SnapsToProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TickFrequencyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TickFrequencyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TickPlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TickPlacementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsDirectionReversedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsDirectionReversedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsThumbToolTipEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsThumbToolTipEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ThumbToolTipValueConverterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ThumbToolTipValueConverterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISliderStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ISliderStatics2>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISplitView> : produce_base<D, Windows::UI::Xaml::Controls::ISplitView>
{
    HRESULT __stdcall get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Pane(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Pane());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Pane(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPaneOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPaneOpen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsPaneOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneOpen(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OpenPaneLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().OpenPaneLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OpenPaneLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpenPaneLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompactPaneLength(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CompactPaneLength(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompactPaneLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PanePlacement(Windows::UI::Xaml::Controls::SplitViewPanePlacement* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SplitViewPanePlacement>(this->shim().PanePlacement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PanePlacement(Windows::UI::Xaml::Controls::SplitViewPanePlacement value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PanePlacement(*reinterpret_cast<Windows::UI::Xaml::Controls::SplitViewPanePlacement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayMode(Windows::UI::Xaml::Controls::SplitViewDisplayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SplitViewDisplayMode>(this->shim().DisplayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DisplayMode(Windows::UI::Xaml::Controls::SplitViewDisplayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::SplitViewDisplayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaneBackground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PaneBackground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PaneBackground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneBackground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PaneClosing(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PaneClosing(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PaneClosing(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosing(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PaneClosed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PaneClosed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PaneClosed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISplitView2> : produce_base<D, Windows::UI::Xaml::Controls::ISplitView2>
{
    HRESULT __stdcall get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISplitView3> : produce_base<D, Windows::UI::Xaml::Controls::ISplitView3>
{
    HRESULT __stdcall add_PaneOpening(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PaneOpening(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PaneOpening(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpening(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PaneOpened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PaneOpened(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SplitView, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PaneOpened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISplitViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISplitViewFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::SplitView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs>
{
    HRESULT __stdcall get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISplitViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISplitViewStatics>
{
    HRESULT __stdcall get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaneProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsPaneOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneOpenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OpenPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpenPaneLengthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompactPaneLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PanePlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PanePlacementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DisplayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettingsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaneBackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaneBackgroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISplitViewStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ISplitViewStatics2>
{
    HRESULT __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStackPanel> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanel>
{
    HRESULT __stdcall get_AreScrollSnapPointsRegular(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreScrollSnapPointsRegular());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AreScrollSnapPointsRegular(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreScrollSnapPointsRegular(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStackPanel2> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanel2>
{
    HRESULT __stdcall get_BorderBrush(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<Windows::UI::Xaml::CornerRadius const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStackPanel4> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanel4>
{
    HRESULT __stdcall get_Spacing(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Spacing());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Spacing(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Spacing(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStackPanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanelFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::StackPanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStackPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanelStatics>
{
    HRESULT __stdcall get_AreScrollSnapPointsRegularProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreScrollSnapPointsRegularProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStackPanelStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanelStatics2>
{
    HRESULT __stdcall get_BorderBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BorderThicknessProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CornerRadiusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStackPanelStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IStackPanelStatics4>
{
    HRESULT __stdcall get_SpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SpacingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStyleSelector> : produce_base<D, Windows::UI::Xaml::Controls::IStyleSelector>
{
    HRESULT __stdcall SelectStyle(void* item, void* container, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStyleSelectorFactory> : produce_base<D, Windows::UI::Xaml::Controls::IStyleSelectorFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::StyleSelector>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IStyleSelectorOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IStyleSelectorOverrides>
{
    HRESULT __stdcall SelectStyleCore(void* item, void* container, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        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>
{
    HRESULT __stdcall CreateCoreIndependentInputSource(Windows::UI::Core::CoreInputDeviceTypes deviceTypes, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Core::CoreIndependentInputSource>(this->shim().CreateCoreIndependentInputSource(*reinterpret_cast<Windows::UI::Core::CoreInputDeviceTypes const*>(&deviceTypes)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::SwapChainBackgroundPanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwapChainPanel> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainPanel>
{
    HRESULT __stdcall get_CompositionScaleX(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().CompositionScaleX());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompositionScaleY(float* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().CompositionScaleY());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CompositionScaleChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CompositionScaleChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwapChainPanel, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CompositionScaleChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompositionScaleChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall CreateCoreIndependentInputSource(Windows::UI::Core::CoreInputDeviceTypes deviceTypes, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Core::CoreIndependentInputSource>(this->shim().CreateCoreIndependentInputSource(*reinterpret_cast<Windows::UI::Core::CoreInputDeviceTypes const*>(&deviceTypes)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwapChainPanelFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainPanelFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::SwapChainPanel>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwapChainPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISwapChainPanelStatics>
{
    HRESULT __stdcall get_CompositionScaleXProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompositionScaleXProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CompositionScaleYProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CompositionScaleYProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeControl> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeControl>
{
    HRESULT __stdcall get_LeftItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().LeftItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LeftItems(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RightItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().RightItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_RightItems(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RightItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TopItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().TopItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TopItems(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BottomItems(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().BottomItems());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BottomItems(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BottomItems(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Close() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Close();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeControlFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::SwipeControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeControlStatics>
{
    HRESULT __stdcall get_LeftItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LeftItemsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RightItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RightItemsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TopItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TopItemsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BottomItemsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BottomItemsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeItem> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItem>
{
    HRESULT __stdcall get_Text(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Text(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IconSource(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::IconSource>(this->shim().IconSource());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IconSource(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IconSource(*reinterpret_cast<Windows::UI::Xaml::Controls::IconSource const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Background(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Background(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Command(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Command(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Command(*reinterpret_cast<Windows::UI::Xaml::Input::ICommand const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CommandParameter(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CommandParameter(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandParameter(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BehaviorOnInvoked(Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked>(this->shim().BehaviorOnInvoked());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_BehaviorOnInvoked(Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BehaviorOnInvoked(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Invoked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Invoked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::SwipeItem, Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Invoked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Invoked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::SwipeItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs>
{
    HRESULT __stdcall get_SwipeControl(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeControl>(this->shim().SwipeControl());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemStatics>
{
    HRESULT __stdcall get_IconSourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IconSourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BackgroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CommandProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CommandParameterProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CommandParameterProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BehaviorOnInvokedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().BehaviorOnInvokedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeItems> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItems>
{
    HRESULT __stdcall get_Mode(Windows::UI::Xaml::Controls::SwipeMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::SwipeMode>(this->shim().Mode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Mode(Windows::UI::Xaml::Controls::SwipeMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Mode(*reinterpret_cast<Windows::UI::Xaml::Controls::SwipeMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemsFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemsFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::SwipeItems>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISwipeItemsStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISwipeItemsStatics>
{
    HRESULT __stdcall get_ModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISymbolIcon> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIcon>
{
    HRESULT __stdcall get_Symbol(Windows::UI::Xaml::Controls::Symbol* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Symbol>(this->shim().Symbol());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Symbol(Windows::UI::Xaml::Controls::Symbol value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Symbol(*reinterpret_cast<Windows::UI::Xaml::Controls::Symbol const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconFactory>
{
    HRESULT __stdcall CreateInstanceWithSymbol(Windows::UI::Xaml::Controls::Symbol symbol, void** instance) noexcept final
    {
        try
        {
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            *instance = detach_from<Windows::UI::Xaml::Controls::SymbolIcon>(this->shim().CreateInstanceWithSymbol(*reinterpret_cast<Windows::UI::Xaml::Controls::Symbol const*>(&symbol)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconSource> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconSource>
{
    HRESULT __stdcall get_Symbol(Windows::UI::Xaml::Controls::Symbol* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Symbol>(this->shim().Symbol());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Symbol(Windows::UI::Xaml::Controls::Symbol value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Symbol(*reinterpret_cast<Windows::UI::Xaml::Controls::Symbol const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconSourceFactory> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::SymbolIconSource>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconSourceStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconSourceStatics>
{
    HRESULT __stdcall get_SymbolProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SymbolProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ISymbolIconStatics> : produce_base<D, Windows::UI::Xaml::Controls::ISymbolIconStatics>
{
    HRESULT __stdcall get_SymbolProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SymbolProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlock> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock>
{
    HRESULT __stdcall get_FontSize(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamily(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontFamily(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<Windows::UI::Text::FontWeight const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyle(Windows::UI::Text::FontStyle* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStyle(Windows::UI::Text::FontStyle value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<Windows::UI::Text::FontStyle const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStretch(Windows::UI::Text::FontStretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_FontStretch(Windows::UI::Text::FontStretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<Windows::UI::Text::FontStretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterSpacing(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CharacterSpacing(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Foreground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Foreground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextTrimming(Windows::UI::Xaml::TextTrimming* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextTrimming>(this->shim().TextTrimming());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextTrimming(Windows::UI::Xaml::TextTrimming value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextTrimming(*reinterpret_cast<Windows::UI::Xaml::TextTrimming const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Text(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Text(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Inlines(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::InlineCollection>(this->shim().Inlines());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<Windows::UI::Xaml::Thickness const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().LineHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LineHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LineStackingStrategy(Windows::UI::Xaml::LineStackingStrategy value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineStackingStrategy(*reinterpret_cast<Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextSelectionEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextSelectionEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextSelectionEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextSelectionEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ContentEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionStart(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionStart());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionEnd(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionEnd());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_BaselineOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BaselineOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SelectionChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SelectionChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContextMenuOpening(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContextMenuOpening(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Select(void* start, void* end) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Select(*reinterpret_cast<Windows::UI::Xaml::Documents::TextPointer const*>(&start), *reinterpret_cast<Windows::UI::Xaml::Documents::TextPointer const*>(&end));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Focus(Windows::UI::Xaml::FocusState value, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlock2> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock2>
{
    HRESULT __stdcall get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLines(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxLines(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextLineBounds(Windows::UI::Xaml::TextLineBounds* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextLineBounds(Windows::UI::Xaml::TextLineBounds value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextLineBounds(*reinterpret_cast<Windows::UI::Xaml::TextLineBounds const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OpticalMarginAlignment(Windows::UI::Xaml::OpticalMarginAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpticalMarginAlignment(*reinterpret_cast<Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorFontEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsColorFontEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlock3> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock3>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlock4> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock4>
{
    HRESULT __stdcall GetAlphaMask(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Composition::CompositionBrush>(this->shim().GetAlphaMask());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlock5> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock5>
{
    HRESULT __stdcall get_TextDecorations(Windows::UI::Text::TextDecorations* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Text::TextDecorations>(this->shim().TextDecorations());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextDecorations(Windows::UI::Text::TextDecorations value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextDecorations(*reinterpret_cast<Windows::UI::Text::TextDecorations const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlock6> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlock6>
{
    HRESULT __stdcall get_IsTextTrimmed(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextHighlighters(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Documents::TextHighlighter>>(this->shim().TextHighlighters());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_IsTextTrimmedChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().IsTextTrimmedChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBlock, Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_IsTextTrimmedChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextTrimmedChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics>
{
    HRESULT __stdcall get_FontSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontFamilyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontWeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStyleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_FontStretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterSpacingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextTrimmingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextTrimmingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PaddingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_LineStackingStrategyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextSelectionEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSelectionEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics2>
{
    HRESULT __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLinesProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextLineBoundsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OpticalMarginAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics3> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics3>
{
    HRESULT __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics5> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics5>
{
    HRESULT __stdcall get_TextDecorationsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextDecorationsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBlockStatics6> : produce_base<D, Windows::UI::Xaml::Controls::ITextBlockStatics6>
{
    HRESULT __stdcall get_IsTextTrimmedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBox> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox>
{
    HRESULT __stdcall get_Text(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Text(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectedText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionLength(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionStart(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionStart(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionStart(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLength(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaxLength(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLength(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsReadOnly(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsReadOnly(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsReadOnly(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AcceptsReturn(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AcceptsReturn());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AcceptsReturn(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AcceptsReturn(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextWrapping(Windows::UI::Xaml::TextWrapping* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextWrapping(Windows::UI::Xaml::TextWrapping value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<Windows::UI::Xaml::TextWrapping const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSpellCheckEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSpellCheckEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsSpellCheckEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSpellCheckEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextPredictionEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextPredictionEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsTextPredictionEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextPredictionEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InputScope(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_InputScope(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputScope(*reinterpret_cast<Windows::UI::Xaml::Input::InputScope const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TextChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextChanged(*reinterpret_cast<Windows::UI::Xaml::Controls::TextChangedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_SelectionChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SelectionChanged(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SelectionChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContextMenuOpening(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContextMenuOpening(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Select(int32_t start, int32_t length) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Select(start, length);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetRectFromCharacterIndex(int32_t charIndex, bool trailingEdge, Windows::Foundation::Rect* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::Rect>(this->shim().GetRectFromCharacterIndex(charIndex, trailingEdge));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBox2> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox2>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderText(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionHighlightColor(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionHighlightColor(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorFontEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsColorFontEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Paste(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Paste(*reinterpret_cast<Windows::UI::Xaml::Controls::TextControlPasteEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Paste(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Paste(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBox3> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox3>
{
    HRESULT __stdcall add_TextCompositionStarted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextCompositionStarted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextCompositionStarted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionStarted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TextCompositionChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextCompositionChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextCompositionChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TextCompositionEnded(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextCompositionEnded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextCompositionEnded(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionEnded(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_TextReadingOrder(Windows::UI::Xaml::TextReadingOrder value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CandidateWindowAlignment>(this->shim().DesiredCandidateWindowAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DesiredCandidateWindowAlignment(Windows::UI::Xaml::Controls::CandidateWindowAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DesiredCandidateWindowAlignment(*reinterpret_cast<Windows::UI::Xaml::Controls::CandidateWindowAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CandidateWindowBoundsChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CandidateWindowBoundsChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TextChanging(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TextChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TextChanging(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanging(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBox4> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox4>
{
    HRESULT __stdcall GetLinguisticAlternativesAsync(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<hstring>>>(this->shim().GetLinguisticAlternativesAsync());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBox5> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox5>
{
    HRESULT __stdcall get_SelectionHighlightColorWhenNotFocused(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColorWhenNotFocused());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionHighlightColorWhenNotFocused(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColorWhenNotFocused(*reinterpret_cast<Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBox6> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox6>
{
    HRESULT __stdcall get_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalTextAlignment(Windows::UI::Xaml::TextAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<Windows::UI::Xaml::TextAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::CharacterCasing>(this->shim().CharacterCasing());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CharacterCasing(Windows::UI::Xaml::Controls::CharacterCasing value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterCasing(*reinterpret_cast<Windows::UI::Xaml::Controls::CharacterCasing const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderForeground(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().PlaceholderForeground());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlaceholderForeground(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderForeground(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CopyingToClipboard(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CopyingToClipboard(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CopyingToClipboard(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopyingToClipboard(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CuttingToClipboard(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CuttingToClipboard(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CuttingToClipboard(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CuttingToClipboard(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_BeforeTextChanging(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().BeforeTextChanging(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_BeforeTextChanging(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BeforeTextChanging(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBox7> : produce_base<D, Windows::UI::Xaml::Controls::ITextBox7>
{
    HRESULT __stdcall get_HandwritingView(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::HandwritingView>(this->shim().HandwritingView());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HandwritingView(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HandwritingView(*reinterpret_cast<Windows::UI::Xaml::Controls::HandwritingView const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHandwritingViewEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHandwritingViewEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsHandwritingViewEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHandwritingViewEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>
{
    HRESULT __stdcall get_NewText(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().NewText());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBoxFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::TextBox>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics>
{
    HRESULT __stdcall get_TextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaxLengthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsReadOnlyProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AcceptsReturnProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AcceptsReturnProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextWrappingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSpellCheckEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsSpellCheckEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsTextPredictionEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextPredictionEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_InputScopeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().InputScopeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics2>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderTextProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics3> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics3>
{
    HRESULT __stdcall get_DesiredCandidateWindowAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DesiredCandidateWindowAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TextReadingOrderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics5> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics5>
{
    HRESULT __stdcall get_SelectionHighlightColorWhenNotFocusedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorWhenNotFocusedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics6> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics6>
{
    HRESULT __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CharacterCasingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterCasingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlaceholderForegroundProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderForegroundProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextBoxStatics7> : produce_base<D, Windows::UI::Xaml::Controls::ITextBoxStatics7>
{
    HRESULT __stdcall get_HandwritingViewProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HandwritingViewProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsHandwritingViewEnabledProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsHandwritingViewEnabledProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_IsContentChanging(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContentChanging());
            return S_OK;
        }
        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::ITextCompositionChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs>
{
    HRESULT __stdcall get_StartIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Length(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Length());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs>
{
    HRESULT __stdcall get_StartIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Length(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Length());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs>
{
    HRESULT __stdcall get_StartIndex(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Length(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Length());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs>
{
    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs>
{
    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITextControlPasteEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITextControlPasteEventArgs>
{
    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITimePickedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickedEventArgs>
{
    HRESULT __stdcall get_OldTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().OldTime());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NewTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().NewTime());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITimePicker> : produce_base<D, Windows::UI::Xaml::Controls::ITimePicker>
{
    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ClockIdentifier(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().ClockIdentifier());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ClockIdentifier(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClockIdentifier(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinuteIncrement(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinuteIncrement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinuteIncrement(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinuteIncrement(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Time(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().Time());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Time(Windows::Foundation::TimeSpan value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Time(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TimeChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TimeChanged(*reinterpret_cast<Windows::Foundation::EventHandler<Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TimeChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TimeChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITimePicker2> : produce_base<D, Windows::UI::Xaml::Controls::ITimePicker2>
{
    HRESULT __stdcall get_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_LightDismissOverlayMode(Windows::UI::Xaml::Controls::LightDismissOverlayMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITimePickerFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::TimePicker>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITimePickerFlyout> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerFlyout>
{
    HRESULT __stdcall get_ClockIdentifier(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().ClockIdentifier());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ClockIdentifier(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClockIdentifier(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Time(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().Time());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Time(Windows::Foundation::TimeSpan value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Time(*reinterpret_cast<Windows::Foundation::TimeSpan const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinuteIncrement(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinuteIncrement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MinuteIncrement(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinuteIncrement(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_TimePicked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().TimePicked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TimePickerFlyout, Windows::UI::Xaml::Controls::TimePickedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_TimePicked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TimePicked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ShowAtAsync(void* target, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::Foundation::IReference<Windows::Foundation::TimeSpan>>>(this->shim().ShowAtAsync(*reinterpret_cast<Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_ClockIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClockIdentifierProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TimeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TimeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinuteIncrementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinuteIncrementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITimePickerStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerStatics>
{
    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ClockIdentifierProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ClockIdentifierProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MinuteIncrementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MinuteIncrementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TimeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TimeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITimePickerStatics2> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerStatics2>
{
    HRESULT __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs>
{
    HRESULT __stdcall get_OldTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().OldTime());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_NewTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().NewTime());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem> : produce_base<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem>
{
    HRESULT __stdcall get_IsChecked(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsChecked());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsChecked(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsChecked(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics>
{
    HRESULT __stdcall get_IsCheckedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsCheckedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IToggleSwitch> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSwitch>
{
    HRESULT __stdcall get_IsOn(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOn());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsOn(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOn(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Header(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Header());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Header(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HeaderTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OnContent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().OnContent());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OnContent(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContent(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OnContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().OnContentTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OnContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OffContent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().OffContent());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OffContent(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OffContent(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OffContentTemplate(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DataTemplate>(this->shim().OffContentTemplate());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_OffContentTemplate(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OffContentTemplate(*reinterpret_cast<Windows::UI::Xaml::DataTemplate const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Toggled(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Toggled(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Toggled(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Toggled(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IToggleSwitchOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSwitchOverrides>
{
    HRESULT __stdcall OnToggled() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnToggled();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnOnContentChanged(void* oldContent, void* newContent) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOnContentChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&newContent));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnOffContentChanged(void* oldContent, void* newContent) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOffContentChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&newContent));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnHeaderChanged(void* oldContent, void* newContent) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnHeaderChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&newContent));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IToggleSwitchStatics> : produce_base<D, Windows::UI::Xaml::Controls::IToggleSwitchStatics>
{
    HRESULT __stdcall get_IsOnProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOnProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HeaderTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OnContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OnContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OnContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OnContentTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OffContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OffContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OffContentTemplateProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OffContentTemplateProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IToolTip> : produce_base<D, Windows::UI::Xaml::Controls::IToolTip>
{
    HRESULT __stdcall get_HorizontalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalOffset(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsOpen(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOpen());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsOpen(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOpen(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Placement(Windows::UI::Xaml::Controls::Primitives::PlacementMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::PlacementMode>(this->shim().Placement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Placement(Windows::UI::Xaml::Controls::Primitives::PlacementMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Placement(*reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::PlacementMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlacementTarget(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().PlacementTarget());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_PlacementTarget(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementTarget(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalOffset(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalOffset(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalOffset(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TemplateSettings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings>(this->shim().TemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Closed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Closed(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Closed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Opened(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Opened(*reinterpret_cast<Windows::UI::Xaml::RoutedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Opened(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IToolTipFactory> : produce_base<D, Windows::UI::Xaml::Controls::IToolTipFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::ToolTip>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_PlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetPlacement(void* element, Windows::UI::Xaml::Controls::Primitives::PlacementMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Primitives::PlacementMode>(this->shim().GetPlacement(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetPlacement(void* element, Windows::UI::Xaml::Controls::Primitives::PlacementMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPlacement(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::PlacementMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlacementTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetPlacementTarget(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().GetPlacementTarget(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetPlacementTarget(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPlacementTarget(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ToolTipProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ToolTipProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetToolTip(void* element, void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().GetToolTip(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetToolTip(void* element, void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetToolTip(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IToolTipStatics> : produce_base<D, Windows::UI::Xaml::Controls::IToolTipStatics>
{
    HRESULT __stdcall get_HorizontalOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalOffsetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsOpenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlacementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PlacementTargetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalOffsetProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalOffsetProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeView> : produce_base<D, Windows::UI::Xaml::Controls::ITreeView>
{
    HRESULT __stdcall get_RootNodes(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().RootNodes());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectionMode(Windows::UI::Xaml::Controls::TreeViewSelectionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewSelectionMode>(this->shim().SelectionMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SelectionMode(Windows::UI::Xaml::Controls::TreeViewSelectionMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewSelectionMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SelectedNodes(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().SelectedNodes());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Expand(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Expand(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewNode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Collapse(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Collapse(*reinterpret_cast<Windows::UI::Xaml::Controls::TreeViewNode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SelectAll() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ItemInvoked(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ItemInvoked(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ItemInvoked(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemInvoked(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Expanding(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Expanding(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Expanding(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Expanding(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_Collapsed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().Collapsed(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_Collapsed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Collapsed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs>
{
    HRESULT __stdcall get_Node(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Node());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs>
{
    HRESULT __stdcall get_Node(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Node());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::TreeView>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItem> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItem>
{
    HRESULT __stdcall get_GlyphOpacity(double* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().GlyphOpacity());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GlyphOpacity(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GlyphOpacity(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GlyphBrush(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Media::Brush>(this->shim().GlyphBrush());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GlyphBrush(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GlyphBrush(*reinterpret_cast<Windows::UI::Xaml::Media::Brush const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExpandedGlyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().ExpandedGlyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ExpandedGlyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ExpandedGlyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CollapsedGlyph(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CollapsedGlyph());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_CollapsedGlyph(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CollapsedGlyph(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GlyphSize(double* result) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().GlyphSize());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_GlyphSize(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GlyphSize(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsExpanded(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExpanded());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsExpanded(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExpanded(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TreeViewItemTemplateSettings(void** result) noexcept final
    {
        try
        {
            *result = nullptr;
            typename D::abi_guard guard(this->shim());
            *result = detach_from<Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings>(this->shim().TreeViewItemTemplateSettings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::TreeViewItem>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>
{
    HRESULT __stdcall get_InvokedItem(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().InvokedItem());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemStatics>
{
    HRESULT __stdcall get_GlyphOpacityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphOpacityProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GlyphBrushProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphBrushProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ExpandedGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedGlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CollapsedGlyphProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CollapsedGlyphProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_GlyphSizeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphSizeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsExpandedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExpandedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_TreeViewItemTemplateSettingsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().TreeViewItemTemplateSettingsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>
{
    HRESULT __stdcall get_ExpandedGlyphVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().ExpandedGlyphVisibility());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CollapsedGlyphVisibility(Windows::UI::Xaml::Visibility* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Visibility>(this->shim().CollapsedGlyphVisibility());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Indentation(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Thickness>(this->shim().Indentation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DragItemsCount(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().DragItemsCount());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>
{
    HRESULT __stdcall get_ExpandedGlyphVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedGlyphVisibilityProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CollapsedGlyphVisibilityProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CollapsedGlyphVisibilityProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IndentationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IndentationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DragItemsCountProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DragItemsCountProperty());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::TreeViewList>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewNode> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewNode>
{
    HRESULT __stdcall get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::IInspectable>(this->shim().Content());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Parent(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Parent());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsExpanded(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExpanded());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsExpanded(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExpanded(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HasChildren(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasChildren());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Depth(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Depth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HasUnrealizedChildren(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasUnrealizedChildren());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HasUnrealizedChildren(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HasUnrealizedChildren(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Children(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().Children());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewNodeFactory> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewNodeFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewNodeStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>
{
    HRESULT __stdcall get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DepthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DepthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsExpandedProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsExpandedProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HasChildrenProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HasChildrenProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::ITreeViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::ITreeViewStatics>
{
    HRESULT __stdcall get_SelectionModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IUIElementCollection> : produce_base<D, Windows::UI::Xaml::Controls::IUIElementCollection>
{
    HRESULT __stdcall Move(uint32_t oldIndex, uint32_t newIndex) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Move(oldIndex, newIndex);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IUserControl> : produce_base<D, Windows::UI::Xaml::Controls::IUserControl>
{
    HRESULT __stdcall get_Content(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Content());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Content(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IUserControlFactory> : produce_base<D, Windows::UI::Xaml::Controls::IUserControlFactory>
{
    HRESULT __stdcall CreateInstance(void* outer, void** inner, void** instance) noexcept final
    {
        try
        {
            if (inner) *inner = nullptr;
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            Windows::Foundation::IInspectable __local_inner;
            *instance = detach_from<Windows::UI::Xaml::Controls::UserControl>(this->shim().CreateInstance(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&outer), __local_inner));
            if (inner) *inner = detach_abi(__local_inner);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IUserControlStatics> : produce_base<D, Windows::UI::Xaml::Controls::IUserControlStatics>
{
    HRESULT __stdcall get_ContentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IVariableSizedWrapGrid> : produce_base<D, Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>
{
    HRESULT __stdcall get_ItemHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemWidth(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalChildrenAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalChildrenAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaximumRowsOrColumns(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaximumRowsOrColumns(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaximumRowsOrColumns(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics> : produce_base<D, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>
{
    HRESULT __stdcall get_ItemHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalChildrenAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalChildrenAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalChildrenAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalChildrenAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaximumRowsOrColumnsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_RowSpanProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpanProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetRowSpan(void* element, int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GetRowSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetRowSpan(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRowSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ColumnSpanProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpanProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetColumnSpan(void* element, int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetColumnSpan(void* element, int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetColumnSpan(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&element), value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IViewbox> : produce_base<D, Windows::UI::Xaml::Controls::IViewbox>
{
    HRESULT __stdcall get_Child(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::UIElement>(this->shim().Child());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Child(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Child(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Stretch(Windows::UI::Xaml::Media::Stretch* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Stretch(Windows::UI::Xaml::Media::Stretch value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<Windows::UI::Xaml::Media::Stretch const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StretchDirection(Windows::UI::Xaml::Controls::StretchDirection* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::StretchDirection>(this->shim().StretchDirection());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_StretchDirection(Windows::UI::Xaml::Controls::StretchDirection value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StretchDirection(*reinterpret_cast<Windows::UI::Xaml::Controls::StretchDirection const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IViewboxStatics> : produce_base<D, Windows::UI::Xaml::Controls::IViewboxStatics>
{
    HRESULT __stdcall get_StretchProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StretchDirectionProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().StretchDirectionProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingPanel> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingPanel>
{
    HRESULT __stdcall get_ItemContainerGenerator(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().ItemContainerGenerator());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall OnItemsChanged(void* sender, void* args) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemsChanged(*reinterpret_cast<Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const*>(&args));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall OnClearChildren() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnClearChildren();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall BringIndexIntoView(int32_t index) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BringIndexIntoView(index);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingPanelProtected> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>
{
    HRESULT __stdcall AddInternalChild(void* child) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddInternalChild(*reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&child));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall InsertInternalChild(int32_t index, void* child) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InsertInternalChild(index, *reinterpret_cast<Windows::UI::Xaml::UIElement const*>(&child));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall RemoveInternalChildRange(int32_t index, int32_t range) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveInternalChildRange(index, range);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanel> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanel>
{
    HRESULT __stdcall get_AreScrollSnapPointsRegular(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreScrollSnapPointsRegular());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AreScrollSnapPointsRegular(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreScrollSnapPointsRegular(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_CleanUpVirtualizedItemEvent(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().CleanUpVirtualizedItemEvent(*reinterpret_cast<Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_CleanUpVirtualizedItemEvent(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CleanUpVirtualizedItemEvent(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>
{
    HRESULT __stdcall OnCleanUpVirtualizedItem(void* e) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnCleanUpVirtualizedItem(*reinterpret_cast<Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const*>(&e));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics> : produce_base<D, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>
{
    HRESULT __stdcall get_AreScrollSnapPointsRegularProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AreScrollSnapPointsRegularProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VirtualizationModeProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VirtualizationModeProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetVirtualizationMode(void* element, Windows::UI::Xaml::Controls::VirtualizationMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::VirtualizationMode>(this->shim().GetVirtualizationMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetVirtualizationMode(void* element, Windows::UI::Xaml::Controls::VirtualizationMode value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVirtualizationMode(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<Windows::UI::Xaml::Controls::VirtualizationMode const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsVirtualizingProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().IsVirtualizingProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GetIsVirtualizing(void* o, bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().GetIsVirtualizing(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&o)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebView> : produce_base<D, Windows::UI::Xaml::Controls::IWebView>
{
    HRESULT __stdcall get_Source(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Source());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Source(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<Windows::Foundation::Uri const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AllowedScriptNotifyUris(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>>(this->shim().AllowedScriptNotifyUris());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_AllowedScriptNotifyUris(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AllowedScriptNotifyUris(*reinterpret_cast<Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DataTransferPackage(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().DataTransferPackage());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_LoadCompleted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().LoadCompleted(*reinterpret_cast<Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_LoadCompleted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LoadCompleted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ScriptNotify(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ScriptNotify(*reinterpret_cast<Windows::UI::Xaml::Controls::NotifyEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ScriptNotify(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScriptNotify(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_NavigationFailed(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().NavigationFailed(*reinterpret_cast<Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_NavigationFailed(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationFailed(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall InvokeScript(HSTRING scriptName, uint32_t __argumentsSize, HSTRING* arguments, HSTRING* returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = 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 S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Navigate(void* source) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Navigate(*reinterpret_cast<Windows::Foundation::Uri const*>(&source));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall NavigateToString(HSTRING text) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateToString(*reinterpret_cast<hstring const*>(&text));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebView2> : produce_base<D, Windows::UI::Xaml::Controls::IWebView2>
{
    HRESULT __stdcall get_CanGoBack(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoBack());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanGoForward(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoForward());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DocumentTitle(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DocumentTitle());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_NavigationStarting(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().NavigationStarting(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_NavigationStarting(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationStarting(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContentLoading(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContentLoading(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContentLoading(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLoading(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_DOMContentLoaded(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().DOMContentLoaded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_DOMContentLoaded(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DOMContentLoaded(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GoForward() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoForward();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall GoBack() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoBack();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Refresh() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Refresh();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Stop() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stop();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall CapturePreviewToStreamAsync(void* stream, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncAction>(this->shim().CapturePreviewToStreamAsync(*reinterpret_cast<Windows::Storage::Streams::IRandomAccessStream const*>(&stream)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall InvokeScriptAsync(HSTRING scriptName, void* arguments, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<hstring>>(this->shim().InvokeScriptAsync(*reinterpret_cast<hstring const*>(&scriptName), *reinterpret_cast<Windows::Foundation::Collections::IIterable<hstring> const*>(&arguments)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall CaptureSelectedContentToDataPackageAsync(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncOperation<Windows::ApplicationModel::DataTransfer::DataPackage>>(this->shim().CaptureSelectedContentToDataPackageAsync());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall NavigateToLocalStreamUri(void* source, void* streamResolver) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateToLocalStreamUri(*reinterpret_cast<Windows::Foundation::Uri const*>(&source), *reinterpret_cast<Windows::Web::IUriToStreamResolver const*>(&streamResolver));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall BuildLocalStreamUri(HSTRING contentIdentifier, HSTRING relativePath, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::Uri>(this->shim().BuildLocalStreamUri(*reinterpret_cast<hstring const*>(&contentIdentifier), *reinterpret_cast<hstring const*>(&relativePath)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DefaultBackgroundColor(struct struct_Windows_UI_Color* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Color>(this->shim().DefaultBackgroundColor());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_DefaultBackgroundColor(struct struct_Windows_UI_Color value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultBackgroundColor(*reinterpret_cast<Windows::UI::Color const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_NavigationCompleted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().NavigationCompleted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_NavigationCompleted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationCompleted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_FrameNavigationStarting(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().FrameNavigationStarting(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_FrameNavigationStarting(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameNavigationStarting(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_FrameContentLoading(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().FrameContentLoading(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_FrameContentLoading(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameContentLoading(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_FrameDOMContentLoaded(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().FrameDOMContentLoaded(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_FrameDOMContentLoaded(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameDOMContentLoaded(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_FrameNavigationCompleted(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().FrameNavigationCompleted(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_FrameNavigationCompleted(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameNavigationCompleted(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_LongRunningScriptDetected(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().LongRunningScriptDetected(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_LongRunningScriptDetected(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LongRunningScriptDetected(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_UnsafeContentWarningDisplaying(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().UnsafeContentWarningDisplaying(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_UnsafeContentWarningDisplaying(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsafeContentWarningDisplaying(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_UnviewableContentIdentified(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().UnviewableContentIdentified(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_UnviewableContentIdentified(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnviewableContentIdentified(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall NavigateWithHttpRequestMessage(void* requestMessage) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateWithHttpRequestMessage(*reinterpret_cast<Windows::Web::Http::HttpRequestMessage const*>(&requestMessage));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Focus(Windows::UI::Xaml::FocusState value, bool* returnValue) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<bool>(this->shim().Focus(*reinterpret_cast<Windows::UI::Xaml::FocusState const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebView3> : produce_base<D, Windows::UI::Xaml::Controls::IWebView3>
{
    HRESULT __stdcall get_ContainsFullScreenElement(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ContainsFullScreenElement());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_ContainsFullScreenElementChanged(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().ContainsFullScreenElementChanged(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::Foundation::IInspectable> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_ContainsFullScreenElementChanged(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainsFullScreenElementChanged(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebView4> : produce_base<D, Windows::UI::Xaml::Controls::IWebView4>
{
    HRESULT __stdcall get_ExecutionMode(Windows::UI::Xaml::Controls::WebViewExecutionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewExecutionMode>(this->shim().ExecutionMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DeferredPermissionRequests(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>>(this->shim().DeferredPermissionRequests());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Settings(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewSettings>(this->shim().Settings());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_UnsupportedUriSchemeIdentified(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().UnsupportedUriSchemeIdentified(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_UnsupportedUriSchemeIdentified(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsupportedUriSchemeIdentified(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_NewWindowRequested(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().NewWindowRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_NewWindowRequested(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NewWindowRequested(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall add_PermissionRequested(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().PermissionRequested(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_PermissionRequested(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PermissionRequested(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall AddWebAllowedObject(HSTRING name, void* pObject) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddWebAllowedObject(*reinterpret_cast<hstring const*>(&name), *reinterpret_cast<Windows::Foundation::IInspectable const*>(&pObject));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall DeferredPermissionRequestById(uint32_t id, void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>(this->shim().DeferredPermissionRequestById(id));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebView5> : produce_base<D, Windows::UI::Xaml::Controls::IWebView5>
{
    HRESULT __stdcall get_XYFocusLeft(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusLeft());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_XYFocusLeft(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusLeft(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusRight(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusRight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_XYFocusRight(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusRight(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusUp(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusUp());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_XYFocusUp(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusUp(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusDown(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusDown());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_XYFocusDown(void* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusDown(*reinterpret_cast<Windows::UI::Xaml::DependencyObject const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebView6> : produce_base<D, Windows::UI::Xaml::Controls::IWebView6>
{
    HRESULT __stdcall add_SeparateProcessLost(void* value, event_token* token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *token = detach_from<event_token>(this->shim().SeparateProcessLost(*reinterpret_cast<Windows::Foundation::TypedEventHandler<Windows::UI::Xaml::Controls::WebView, Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> const*>(&value)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall remove_SeparateProcessLost(event_token token) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SeparateProcessLost(*reinterpret_cast<event_token const*>(&token));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewBrush> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewBrush>
{
    HRESULT __stdcall get_SourceName(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SourceName());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_SourceName(HSTRING value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SourceName(*reinterpret_cast<hstring const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Redraw() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Redraw();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall SetSource(void* source) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSource(*reinterpret_cast<Windows::UI::Xaml::Controls::WebView const*>(&source));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewBrushStatics> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewBrushStatics>
{
    HRESULT __stdcall get_SourceNameProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceNameProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PermissionType(Windows::UI::Xaml::Controls::WebViewPermissionType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionType>(this->shim().PermissionType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Id(uint32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Id());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Allow() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Allow();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Deny() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Deny();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewFactory4> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewFactory4>
{
    HRESULT __stdcall CreateInstanceWithExecutionMode(Windows::UI::Xaml::Controls::WebViewExecutionMode executionMode, void** instance) noexcept final
    {
        try
        {
            *instance = nullptr;
            typename D::abi_guard guard(this->shim());
            *instance = detach_from<Windows::UI::Xaml::Controls::WebView>(this->shim().CreateInstanceWithExecutionMode(*reinterpret_cast<Windows::UI::Xaml::Controls::WebViewExecutionMode const*>(&executionMode)));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>
{
    HRESULT __stdcall get_ExecutionTime(Windows::Foundation::TimeSpan* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::TimeSpan>(this->shim().ExecutionTime());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_StopPageScriptExecution(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().StopPageScriptExecution());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_StopPageScriptExecution(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StopPageScriptExecution(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsSuccess(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSuccess());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_WebErrorStatus(Windows::Web::WebErrorStatus* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Web::WebErrorStatus>(this->shim().WebErrorStatus());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_WebErrorStatus(Windows::Web::WebErrorStatus* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Web::WebErrorStatus>(this->shim().WebErrorStatus());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Cancel(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Cancel());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Cancel(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Cancel(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Referrer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Referrer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewPermissionRequest> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewPermissionRequest>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_PermissionType(Windows::UI::Xaml::Controls::WebViewPermissionType* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionType>(this->shim().PermissionType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Id(uint32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Id());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_State(Windows::UI::Xaml::Controls::WebViewPermissionState* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionState>(this->shim().State());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Defer() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Defer();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Allow() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Allow();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall Deny() noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Deny();
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs>
{
    HRESULT __stdcall get_PermissionRequest(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewPermissionRequest>(this->shim().PermissionRequest());
            return S_OK;
        }
        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>
{
    HRESULT __stdcall get_IsJavaScriptEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsJavaScriptEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsJavaScriptEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsJavaScriptEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_IsIndexedDBEnabled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsIndexedDBEnabled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_IsIndexedDBEnabled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsIndexedDBEnabled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics>
{
    HRESULT __stdcall get_AnyScriptNotifyUri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Collections::IVector<Windows::Foundation::Uri>>(this->shim().AnyScriptNotifyUri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_SourceProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_AllowedScriptNotifyUrisProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().AllowedScriptNotifyUrisProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DataTransferPackageProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DataTransferPackageProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics2> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics2>
{
    HRESULT __stdcall get_CanGoBackProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoBackProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_CanGoForwardProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoForwardProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DocumentTitleProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DocumentTitleProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_DefaultBackgroundColorProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultBackgroundColorProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics3> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics3>
{
    HRESULT __stdcall get_ContainsFullScreenElementProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ContainsFullScreenElementProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics4> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics4>
{
    HRESULT __stdcall get_DefaultExecutionMode(Windows::UI::Xaml::Controls::WebViewExecutionMode* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::WebViewExecutionMode>(this->shim().DefaultExecutionMode());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall ClearTemporaryWebDataAsync(void** returnValue) noexcept final
    {
        try
        {
            *returnValue = nullptr;
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<Windows::Foundation::IAsyncAction>(this->shim().ClearTemporaryWebDataAsync());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewStatics5> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewStatics5>
{
    HRESULT __stdcall get_XYFocusLeftProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusLeftProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusRightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusRightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusUpProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusUpProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_XYFocusDownProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusDownProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Handled(bool* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Handled(bool value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Handled(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs>
{
    HRESULT __stdcall get_Uri(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Uri());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Referrer(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::Foundation::Uri>(this->shim().Referrer());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2> : produce_base<D, Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2>
{
    HRESULT __stdcall get_MediaType(HSTRING* value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().MediaType());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWrapGrid> : produce_base<D, Windows::UI::Xaml::Controls::IWrapGrid>
{
    HRESULT __stdcall get_ItemWidth(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemWidth());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemWidth(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemWidth(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemHeight(double* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemHeight());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_ItemHeight(double value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemHeight(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_Orientation(Windows::UI::Xaml::Controls::Orientation* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_Orientation(Windows::UI::Xaml::Controls::Orientation value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalChildrenAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_HorizontalChildrenAlignment(Windows::UI::Xaml::HorizontalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalChildrenAlignment());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_VerticalChildrenAlignment(Windows::UI::Xaml::VerticalAlignment value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalChildrenAlignment(*reinterpret_cast<Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaximumRowsOrColumns(int32_t* value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall put_MaximumRowsOrColumns(int32_t value) noexcept final
    {
        try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaximumRowsOrColumns(value);
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }
};

template <typename D>
struct produce<D, Windows::UI::Xaml::Controls::IWrapGridStatics> : produce_base<D, Windows::UI::Xaml::Controls::IWrapGridStatics>
{
    HRESULT __stdcall get_ItemWidthProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_ItemHeightProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_OrientationProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_HorizontalChildrenAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalChildrenAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_VerticalChildrenAlignmentProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalChildrenAlignmentProperty());
            return S_OK;
        }
        catch (...)
        {
            return to_hresult();
        }
    }

    HRESULT __stdcall get_MaximumRowsOrColumnsProperty(void** value) noexcept final
    {
        try
        {
            *value = nullptr;
            typename D::abi_guard guard(this->shim());
            *value = detach_from<Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return S_OK;
        }
        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 outer, inner;
    *this = get_activation_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty AppBar::IsOpenProperty()
{
    return get_activation_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics>().IsOpenProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBar::IsStickyProperty()
{
    return get_activation_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics>().IsStickyProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBar::ClosedDisplayModeProperty()
{
    return get_activation_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics2>().ClosedDisplayModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBar::LightDismissOverlayModeProperty()
{
    return get_activation_factory<AppBar, Windows::UI::Xaml::Controls::IAppBarStatics4>().LightDismissOverlayModeProperty();
}

inline AppBarButton::AppBarButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::LabelProperty()
{
    return get_activation_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics>().LabelProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::IconProperty()
{
    return get_activation_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics>().IconProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::IsCompactProperty()
{
    return get_activation_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics>().IsCompactProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::LabelPositionProperty()
{
    return get_activation_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>().LabelPositionProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::IsInOverflowProperty()
{
    return get_activation_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>().IsInOverflowProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::DynamicOverflowOrderProperty()
{
    return get_activation_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics3>().DynamicOverflowOrderProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarButton::KeyboardAcceleratorTextOverrideProperty()
{
    return get_activation_factory<AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonStatics4>().KeyboardAcceleratorTextOverrideProperty();
}

inline AppBarSeparator::AppBarSeparator()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty AppBarSeparator::IsCompactProperty()
{
    return get_activation_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics>().IsCompactProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarSeparator::IsInOverflowProperty()
{
    return get_activation_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>().IsInOverflowProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarSeparator::DynamicOverflowOrderProperty()
{
    return get_activation_factory<AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>().DynamicOverflowOrderProperty();
}

inline AppBarToggleButton::AppBarToggleButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::LabelProperty()
{
    return get_activation_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>().LabelProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::IconProperty()
{
    return get_activation_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>().IconProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::IsCompactProperty()
{
    return get_activation_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>().IsCompactProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::LabelPositionProperty()
{
    return get_activation_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>().LabelPositionProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::IsInOverflowProperty()
{
    return get_activation_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>().IsInOverflowProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::DynamicOverflowOrderProperty()
{
    return get_activation_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>().DynamicOverflowOrderProperty();
}

inline Windows::UI::Xaml::DependencyProperty AppBarToggleButton::KeyboardAcceleratorTextOverrideProperty()
{
    return get_activation_factory<AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4>().KeyboardAcceleratorTextOverrideProperty();
}

inline AutoSuggestBox::AutoSuggestBox() :
    AutoSuggestBox(get_activation_factory<AutoSuggestBox>().ActivateInstance<AutoSuggestBox>())
{}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::MaxSuggestionListHeightProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>().MaxSuggestionListHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::IsSuggestionListOpenProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>().IsSuggestionListOpenProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::TextMemberPathProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>().TextMemberPathProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::TextProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>().TextProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::UpdateTextOnSelectProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>().UpdateTextOnSelectProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::PlaceholderTextProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>().PlaceholderTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::HeaderProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::AutoMaximizeSuggestionAreaProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>().AutoMaximizeSuggestionAreaProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::TextBoxStyleProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>().TextBoxStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::QueryIconProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2>().QueryIconProperty();
}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBox::LightDismissOverlayModeProperty()
{
    return get_activation_factory<AutoSuggestBox, Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3>().LightDismissOverlayModeProperty();
}

inline AutoSuggestBoxQuerySubmittedEventArgs::AutoSuggestBoxQuerySubmittedEventArgs() :
    AutoSuggestBoxQuerySubmittedEventArgs(get_activation_factory<AutoSuggestBoxQuerySubmittedEventArgs>().ActivateInstance<AutoSuggestBoxQuerySubmittedEventArgs>())
{}

inline AutoSuggestBoxSuggestionChosenEventArgs::AutoSuggestBoxSuggestionChosenEventArgs() :
    AutoSuggestBoxSuggestionChosenEventArgs(get_activation_factory<AutoSuggestBoxSuggestionChosenEventArgs>().ActivateInstance<AutoSuggestBoxSuggestionChosenEventArgs>())
{}

inline AutoSuggestBoxTextChangedEventArgs::AutoSuggestBoxTextChangedEventArgs() :
    AutoSuggestBoxTextChangedEventArgs(get_activation_factory<AutoSuggestBoxTextChangedEventArgs>().ActivateInstance<AutoSuggestBoxTextChangedEventArgs>())
{}

inline Windows::UI::Xaml::DependencyProperty AutoSuggestBoxTextChangedEventArgs::ReasonProperty()
{
    return get_activation_factory<AutoSuggestBoxTextChangedEventArgs, Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics>().ReasonProperty();
}

inline BackClickEventArgs::BackClickEventArgs() :
    BackClickEventArgs(get_activation_factory<BackClickEventArgs>().ActivateInstance<BackClickEventArgs>())
{}

inline BitmapIcon::BitmapIcon()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<BitmapIcon, Windows::UI::Xaml::Controls::IBitmapIconFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty BitmapIcon::UriSourceProperty()
{
    return get_activation_factory<BitmapIcon, Windows::UI::Xaml::Controls::IBitmapIconStatics>().UriSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty BitmapIcon::ShowAsMonochromeProperty()
{
    return get_activation_factory<BitmapIcon, Windows::UI::Xaml::Controls::IBitmapIconStatics2>().ShowAsMonochromeProperty();
}

inline BitmapIconSource::BitmapIconSource()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<BitmapIconSource, Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty BitmapIconSource::UriSourceProperty()
{
    return get_activation_factory<BitmapIconSource, Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>().UriSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty BitmapIconSource::ShowAsMonochromeProperty()
{
    return get_activation_factory<BitmapIconSource, Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>().ShowAsMonochromeProperty();
}

inline Border::Border() :
    Border(get_activation_factory<Border>().ActivateInstance<Border>())
{}

inline Windows::UI::Xaml::DependencyProperty Border::BorderBrushProperty()
{
    return get_activation_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>().BorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty Border::BorderThicknessProperty()
{
    return get_activation_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>().BorderThicknessProperty();
}

inline Windows::UI::Xaml::DependencyProperty Border::BackgroundProperty()
{
    return get_activation_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>().BackgroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty Border::CornerRadiusProperty()
{
    return get_activation_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>().CornerRadiusProperty();
}

inline Windows::UI::Xaml::DependencyProperty Border::PaddingProperty()
{
    return get_activation_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>().PaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty Border::ChildTransitionsProperty()
{
    return get_activation_factory<Border, Windows::UI::Xaml::Controls::IBorderStatics>().ChildTransitionsProperty();
}

inline Button::Button()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<Button, Windows::UI::Xaml::Controls::IButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty Button::FlyoutProperty()
{
    return get_activation_factory<Button, Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout>().FlyoutProperty();
}

inline CalendarDatePicker::CalendarDatePicker()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::DateProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().DateProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::IsCalendarOpenProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().IsCalendarOpenProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::DateFormatProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().DateFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::PlaceholderTextProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().PlaceholderTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::HeaderProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::HeaderTemplateProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::CalendarViewStyleProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().CalendarViewStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::MinDateProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().MinDateProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::MaxDateProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().MaxDateProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::IsTodayHighlightedProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().IsTodayHighlightedProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::DisplayModeProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().DisplayModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::FirstDayOfWeekProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().FirstDayOfWeekProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::DayOfWeekFormatProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().DayOfWeekFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::CalendarIdentifierProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().CalendarIdentifierProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::IsOutOfScopeEnabledProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().IsOutOfScopeEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::IsGroupLabelVisibleProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>().IsGroupLabelVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarDatePicker::LightDismissOverlayModeProperty()
{
    return get_activation_factory<CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2>().LightDismissOverlayModeProperty();
}

inline CalendarView::CalendarView()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarIdentifierProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().CalendarIdentifierProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayOfWeekFormatProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().DayOfWeekFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::IsGroupLabelVisibleProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().IsGroupLabelVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DisplayModeProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().DisplayModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstDayOfWeekProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FirstDayOfWeekProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::IsOutOfScopeEnabledProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().IsOutOfScopeEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::IsTodayHighlightedProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().IsTodayHighlightedProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MaxDateProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().MaxDateProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MinDateProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().MinDateProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::NumberOfWeeksInViewProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().NumberOfWeeksInViewProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedDatesProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().SelectedDatesProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectionModeProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().SelectionModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::TemplateSettingsProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().TemplateSettingsProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FocusBorderBrushProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FocusBorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedHoverBorderBrushProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().SelectedHoverBorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedPressedBorderBrushProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().SelectedPressedBorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedBorderBrushProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().SelectedBorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::HoverBorderBrushProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().HoverBorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::PressedBorderBrushProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().PressedBorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarItemBorderBrushProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().CalendarItemBorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::OutOfScopeBackgroundProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().OutOfScopeBackgroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarItemBackgroundProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().CalendarItemBackgroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::PressedForegroundProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().PressedForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::TodayForegroundProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().TodayForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::BlackoutForegroundProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().BlackoutForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::SelectedForegroundProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().SelectedForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::OutOfScopeForegroundProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().OutOfScopeForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarItemForegroundProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().CalendarItemForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayItemFontFamilyProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().DayItemFontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayItemFontSizeProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().DayItemFontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayItemFontStyleProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().DayItemFontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::DayItemFontWeightProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().DayItemFontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::TodayFontWeightProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().TodayFontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfMonthLabelFontFamilyProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FirstOfMonthLabelFontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfMonthLabelFontSizeProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FirstOfMonthLabelFontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfMonthLabelFontStyleProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FirstOfMonthLabelFontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfMonthLabelFontWeightProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FirstOfMonthLabelFontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MonthYearItemFontFamilyProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().MonthYearItemFontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MonthYearItemFontSizeProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().MonthYearItemFontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MonthYearItemFontStyleProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().MonthYearItemFontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::MonthYearItemFontWeightProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().MonthYearItemFontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfYearDecadeLabelFontFamilyProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FirstOfYearDecadeLabelFontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfYearDecadeLabelFontSizeProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FirstOfYearDecadeLabelFontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfYearDecadeLabelFontStyleProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FirstOfYearDecadeLabelFontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::FirstOfYearDecadeLabelFontWeightProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().FirstOfYearDecadeLabelFontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::HorizontalDayItemAlignmentProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().HorizontalDayItemAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::VerticalDayItemAlignmentProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().VerticalDayItemAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::HorizontalFirstOfMonthLabelAlignmentProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().HorizontalFirstOfMonthLabelAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::VerticalFirstOfMonthLabelAlignmentProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().VerticalFirstOfMonthLabelAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarItemBorderThicknessProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().CalendarItemBorderThicknessProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarView::CalendarViewDayItemStyleProperty()
{
    return get_activation_factory<CalendarView, Windows::UI::Xaml::Controls::ICalendarViewStatics>().CalendarViewDayItemStyleProperty();
}

inline CalendarViewDayItem::CalendarViewDayItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<CalendarViewDayItem, Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty CalendarViewDayItem::IsBlackoutProperty()
{
    return get_activation_factory<CalendarViewDayItem, Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>().IsBlackoutProperty();
}

inline Windows::UI::Xaml::DependencyProperty CalendarViewDayItem::DateProperty()
{
    return get_activation_factory<CalendarViewDayItem, Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>().DateProperty();
}

inline Canvas::Canvas()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty Canvas::LeftProperty()
{
    return get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>().LeftProperty();
}

inline double Canvas::GetLeft(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>().GetLeft(element);
}

inline void Canvas::SetLeft(Windows::UI::Xaml::UIElement const& element, double length)
{
    get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>().SetLeft(element, length);
}

inline Windows::UI::Xaml::DependencyProperty Canvas::TopProperty()
{
    return get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>().TopProperty();
}

inline double Canvas::GetTop(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>().GetTop(element);
}

inline void Canvas::SetTop(Windows::UI::Xaml::UIElement const& element, double length)
{
    get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>().SetTop(element, length);
}

inline Windows::UI::Xaml::DependencyProperty Canvas::ZIndexProperty()
{
    return get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>().ZIndexProperty();
}

inline int32_t Canvas::GetZIndex(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>().GetZIndex(element);
}

inline void Canvas::SetZIndex(Windows::UI::Xaml::UIElement const& element, int32_t value)
{
    get_activation_factory<Canvas, Windows::UI::Xaml::Controls::ICanvasStatics>().SetZIndex(element, value);
}

inline CaptureElement::CaptureElement() :
    CaptureElement(get_activation_factory<CaptureElement>().ActivateInstance<CaptureElement>())
{}

inline Windows::UI::Xaml::DependencyProperty CaptureElement::SourceProperty()
{
    return get_activation_factory<CaptureElement, Windows::UI::Xaml::Controls::ICaptureElementStatics>().SourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty CaptureElement::StretchProperty()
{
    return get_activation_factory<CaptureElement, Windows::UI::Xaml::Controls::ICaptureElementStatics>().StretchProperty();
}

inline CheckBox::CheckBox()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<CheckBox, Windows::UI::Xaml::Controls::ICheckBoxFactory>().CreateInstance(outer, inner);
}

inline ChoosingGroupHeaderContainerEventArgs::ChoosingGroupHeaderContainerEventArgs() :
    ChoosingGroupHeaderContainerEventArgs(get_activation_factory<ChoosingGroupHeaderContainerEventArgs>().ActivateInstance<ChoosingGroupHeaderContainerEventArgs>())
{}

inline ChoosingItemContainerEventArgs::ChoosingItemContainerEventArgs() :
    ChoosingItemContainerEventArgs(get_activation_factory<ChoosingItemContainerEventArgs>().ActivateInstance<ChoosingItemContainerEventArgs>())
{}

inline ColorPicker::ColorPicker()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::ColorProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().ColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::PreviousColorProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().PreviousColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsAlphaEnabledProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().IsAlphaEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsColorSpectrumVisibleProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().IsColorSpectrumVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsColorPreviewVisibleProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().IsColorPreviewVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsColorSliderVisibleProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().IsColorSliderVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsAlphaSliderVisibleProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().IsAlphaSliderVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsMoreButtonVisibleProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().IsMoreButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsColorChannelTextInputVisibleProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().IsColorChannelTextInputVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsAlphaTextInputVisibleProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().IsAlphaTextInputVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::IsHexInputVisibleProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().IsHexInputVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MinHueProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().MinHueProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MaxHueProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().MaxHueProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MinSaturationProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().MinSaturationProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MaxSaturationProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().MaxSaturationProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MinValueProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().MinValueProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::MaxValueProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().MaxValueProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::ColorSpectrumShapeProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().ColorSpectrumShapeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColorPicker::ColorSpectrumComponentsProperty()
{
    return get_activation_factory<ColorPicker, Windows::UI::Xaml::Controls::IColorPickerStatics>().ColorSpectrumComponentsProperty();
}

inline ColumnDefinition::ColumnDefinition() :
    ColumnDefinition(get_activation_factory<ColumnDefinition>().ActivateInstance<ColumnDefinition>())
{}

inline Windows::UI::Xaml::DependencyProperty ColumnDefinition::WidthProperty()
{
    return get_activation_factory<ColumnDefinition, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>().WidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColumnDefinition::MaxWidthProperty()
{
    return get_activation_factory<ColumnDefinition, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>().MaxWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty ColumnDefinition::MinWidthProperty()
{
    return get_activation_factory<ColumnDefinition, Windows::UI::Xaml::Controls::IColumnDefinitionStatics>().MinWidthProperty();
}

inline ComboBox::ComboBox()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::IsDropDownOpenProperty()
{
    return get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics>().IsDropDownOpenProperty();
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::MaxDropDownHeightProperty()
{
    return get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics>().MaxDropDownHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::HeaderProperty()
{
    return get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics2>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::HeaderTemplateProperty()
{
    return get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics2>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::PlaceholderTextProperty()
{
    return get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics2>().PlaceholderTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::LightDismissOverlayModeProperty()
{
    return get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics3>().LightDismissOverlayModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::IsTextSearchEnabledProperty()
{
    return get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics3>().IsTextSearchEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::SelectionChangedTriggerProperty()
{
    return get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics4>().SelectionChangedTriggerProperty();
}

inline Windows::UI::Xaml::DependencyProperty ComboBox::PlaceholderForegroundProperty()
{
    return get_activation_factory<ComboBox, Windows::UI::Xaml::Controls::IComboBoxStatics5>().PlaceholderForegroundProperty();
}

inline ComboBoxItem::ComboBoxItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ComboBoxItem, Windows::UI::Xaml::Controls::IComboBoxItemFactory>().CreateInstance(outer, inner);
}

inline CommandBar::CommandBar()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::PrimaryCommandsProperty()
{
    return get_activation_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics>().PrimaryCommandsProperty();
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::SecondaryCommandsProperty()
{
    return get_activation_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics>().SecondaryCommandsProperty();
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::CommandBarOverflowPresenterStyleProperty()
{
    return get_activation_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics2>().CommandBarOverflowPresenterStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::DefaultLabelPositionProperty()
{
    return get_activation_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics3>().DefaultLabelPositionProperty();
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::OverflowButtonVisibilityProperty()
{
    return get_activation_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics3>().OverflowButtonVisibilityProperty();
}

inline Windows::UI::Xaml::DependencyProperty CommandBar::IsDynamicOverflowEnabledProperty()
{
    return get_activation_factory<CommandBar, Windows::UI::Xaml::Controls::ICommandBarStatics3>().IsDynamicOverflowEnabledProperty();
}

inline CommandBarOverflowPresenter::CommandBarOverflowPresenter()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<CommandBarOverflowPresenter, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory>().CreateInstance(outer, inner);
}

inline ContainerContentChangingEventArgs::ContainerContentChangingEventArgs() :
    ContainerContentChangingEventArgs(get_activation_factory<ContainerContentChangingEventArgs>().ActivateInstance<ContainerContentChangingEventArgs>())
{}

inline ContentControl::ContentControl()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ContentControl::ContentProperty()
{
    return get_activation_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>().ContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentControl::ContentTemplateProperty()
{
    return get_activation_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>().ContentTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentControl::ContentTemplateSelectorProperty()
{
    return get_activation_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>().ContentTemplateSelectorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentControl::ContentTransitionsProperty()
{
    return get_activation_factory<ContentControl, Windows::UI::Xaml::Controls::IContentControlStatics>().ContentTransitionsProperty();
}

inline ContentDialog::ContentDialog()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::TitleProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().TitleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::TitleTemplateProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().TitleTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::FullSizeDesiredProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().FullSizeDesiredProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::PrimaryButtonTextProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().PrimaryButtonTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::SecondaryButtonTextProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().SecondaryButtonTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::PrimaryButtonCommandProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().PrimaryButtonCommandProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::SecondaryButtonCommandProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().SecondaryButtonCommandProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::PrimaryButtonCommandParameterProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().PrimaryButtonCommandParameterProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::SecondaryButtonCommandParameterProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().SecondaryButtonCommandParameterProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::IsPrimaryButtonEnabledProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().IsPrimaryButtonEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::IsSecondaryButtonEnabledProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics>().IsSecondaryButtonEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::CloseButtonTextProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>().CloseButtonTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::CloseButtonCommandProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>().CloseButtonCommandProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::CloseButtonCommandParameterProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>().CloseButtonCommandParameterProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::PrimaryButtonStyleProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>().PrimaryButtonStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::SecondaryButtonStyleProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>().SecondaryButtonStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::CloseButtonStyleProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>().CloseButtonStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentDialog::DefaultButtonProperty()
{
    return get_activation_factory<ContentDialog, Windows::UI::Xaml::Controls::IContentDialogStatics2>().DefaultButtonProperty();
}

inline ContentPresenter::ContentPresenter()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::ContentProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().ContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::ContentTemplateProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().ContentTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::ContentTemplateSelectorProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().ContentTemplateSelectorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::ContentTransitionsProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().ContentTransitionsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontSizeProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().FontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontFamilyProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().FontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontWeightProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().FontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontStyleProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().FontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::FontStretchProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().FontStretchProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::CharacterSpacingProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().CharacterSpacingProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::ForegroundProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics>().ForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::OpticalMarginAlignmentProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics2>().OpticalMarginAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::TextLineBoundsProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics2>().TextLineBoundsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::IsTextScaleFactorEnabledProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics3>().IsTextScaleFactorEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::TextWrappingProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().TextWrappingProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::MaxLinesProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().MaxLinesProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::LineStackingStrategyProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().LineStackingStrategyProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::LineHeightProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().LineHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::BorderBrushProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().BorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::BorderThicknessProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().BorderThicknessProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::CornerRadiusProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().CornerRadiusProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::PaddingProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().PaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::BackgroundProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().BackgroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::HorizontalContentAlignmentProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().HorizontalContentAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty ContentPresenter::VerticalContentAlignmentProperty()
{
    return get_activation_factory<ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterStatics4>().VerticalContentAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::FontSizeProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().FontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::FontFamilyProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().FontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::FontWeightProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().FontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::FontStyleProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().FontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::FontStretchProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().FontStretchProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::CharacterSpacingProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().CharacterSpacingProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::ForegroundProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().ForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::IsTabStopProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().IsTabStopProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::IsEnabledProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().IsEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::TabIndexProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().TabIndexProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::TabNavigationProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().TabNavigationProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::TemplateProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().TemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::PaddingProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().PaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::HorizontalContentAlignmentProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().HorizontalContentAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::VerticalContentAlignmentProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().VerticalContentAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::BackgroundProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().BackgroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::BorderThicknessProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().BorderThicknessProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::BorderBrushProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().BorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::DefaultStyleKeyProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().DefaultStyleKeyProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::FocusStateProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics>().FocusStateProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::IsTextScaleFactorEnabledProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics2>().IsTextScaleFactorEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::UseSystemFocusVisualsProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>().UseSystemFocusVisualsProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::IsTemplateFocusTargetProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>().IsTemplateFocusTargetProperty();
}

inline bool Control::GetIsTemplateFocusTarget(Windows::UI::Xaml::FrameworkElement const& element)
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>().GetIsTemplateFocusTarget(element);
}

inline void Control::SetIsTemplateFocusTarget(Windows::UI::Xaml::FrameworkElement const& element, bool value)
{
    get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics3>().SetIsTemplateFocusTarget(element, value);
}

inline Windows::UI::Xaml::DependencyProperty Control::IsFocusEngagementEnabledProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>().IsFocusEngagementEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::IsFocusEngagedProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>().IsFocusEngagedProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::RequiresPointerProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>().RequiresPointerProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::XYFocusLeftProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>().XYFocusLeftProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::XYFocusRightProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>().XYFocusRightProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::XYFocusUpProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>().XYFocusUpProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::XYFocusDownProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>().XYFocusDownProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::ElementSoundModeProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics4>().ElementSoundModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::DefaultStyleResourceUriProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>().DefaultStyleResourceUriProperty();
}

inline Windows::UI::Xaml::DependencyProperty Control::IsTemplateKeyTipTargetProperty()
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>().IsTemplateKeyTipTargetProperty();
}

inline bool Control::GetIsTemplateKeyTipTarget(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>().GetIsTemplateKeyTipTarget(element);
}

inline void Control::SetIsTemplateKeyTipTarget(Windows::UI::Xaml::DependencyObject const& element, bool value)
{
    get_activation_factory<Control, Windows::UI::Xaml::Controls::IControlStatics5>().SetIsTemplateKeyTipTarget(element, value);
}

inline ControlTemplate::ControlTemplate() :
    ControlTemplate(get_activation_factory<ControlTemplate>().ActivateInstance<ControlTemplate>())
{}

inline DataTemplateSelector::DataTemplateSelector()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<DataTemplateSelector, Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>().CreateInstance(outer, inner);
}

inline DatePickedEventArgs::DatePickedEventArgs() :
    DatePickedEventArgs(get_activation_factory<DatePickedEventArgs>().ActivateInstance<DatePickedEventArgs>())
{}

inline DatePicker::DatePicker()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::HeaderProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::HeaderTemplateProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::CalendarIdentifierProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().CalendarIdentifierProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::DateProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().DateProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::DayVisibleProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().DayVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::MonthVisibleProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().MonthVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::YearVisibleProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().YearVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::DayFormatProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().DayFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::MonthFormatProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().MonthFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::YearFormatProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().YearFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::MinYearProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().MinYearProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::MaxYearProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().MaxYearProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::OrientationProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePicker::LightDismissOverlayModeProperty()
{
    return get_activation_factory<DatePicker, Windows::UI::Xaml::Controls::IDatePickerStatics2>().LightDismissOverlayModeProperty();
}

inline DatePickerFlyout::DatePickerFlyout() :
    DatePickerFlyout(get_activation_factory<DatePickerFlyout>().ActivateInstance<DatePickerFlyout>())
{}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::CalendarIdentifierProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>().CalendarIdentifierProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::DateProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>().DateProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::DayVisibleProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>().DayVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::MonthVisibleProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>().MonthVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::YearVisibleProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>().YearVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::MinYearProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>().MinYearProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::MaxYearProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>().MaxYearProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::DayFormatProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>().DayFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::MonthFormatProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>().MonthFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyout::YearFormatProperty()
{
    return get_activation_factory<DatePickerFlyout, Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>().YearFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyoutItem::PrimaryTextProperty()
{
    return get_activation_factory<DatePickerFlyoutItem, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>().PrimaryTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty DatePickerFlyoutItem::SecondaryTextProperty()
{
    return get_activation_factory<DatePickerFlyoutItem, Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>().SecondaryTextProperty();
}

inline DragItemsStartingEventArgs::DragItemsStartingEventArgs() :
    DragItemsStartingEventArgs(get_activation_factory<DragItemsStartingEventArgs>().ActivateInstance<DragItemsStartingEventArgs>())
{}

inline DynamicOverflowItemsChangingEventArgs::DynamicOverflowItemsChangingEventArgs() :
    DynamicOverflowItemsChangingEventArgs(get_activation_factory<DynamicOverflowItemsChangingEventArgs>().ActivateInstance<DynamicOverflowItemsChangingEventArgs>())
{}

inline FlipView::FlipView()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<FlipView, Windows::UI::Xaml::Controls::IFlipViewFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty FlipView::UseTouchAnimationsForAllNavigationProperty()
{
    return get_activation_factory<FlipView, Windows::UI::Xaml::Controls::IFlipViewStatics2>().UseTouchAnimationsForAllNavigationProperty();
}

inline FlipViewItem::FlipViewItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<FlipViewItem, Windows::UI::Xaml::Controls::IFlipViewItemFactory>().CreateInstance(outer, inner);
}

inline Flyout::Flyout()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<Flyout, Windows::UI::Xaml::Controls::IFlyoutFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty Flyout::ContentProperty()
{
    return get_activation_factory<Flyout, Windows::UI::Xaml::Controls::IFlyoutStatics>().ContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty Flyout::FlyoutPresenterStyleProperty()
{
    return get_activation_factory<Flyout, Windows::UI::Xaml::Controls::IFlyoutStatics>().FlyoutPresenterStyleProperty();
}

inline FlyoutPresenter::FlyoutPresenter()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<FlyoutPresenter, Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>().CreateInstance(outer, inner);
}

inline FontIcon::FontIcon()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::GlyphProperty()
{
    return get_activation_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>().GlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::FontSizeProperty()
{
    return get_activation_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>().FontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::FontFamilyProperty()
{
    return get_activation_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>().FontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::FontWeightProperty()
{
    return get_activation_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>().FontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::FontStyleProperty()
{
    return get_activation_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics>().FontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::IsTextScaleFactorEnabledProperty()
{
    return get_activation_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics2>().IsTextScaleFactorEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIcon::MirroredWhenRightToLeftProperty()
{
    return get_activation_factory<FontIcon, Windows::UI::Xaml::Controls::IFontIconStatics3>().MirroredWhenRightToLeftProperty();
}

inline FontIconSource::FontIconSource()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::GlyphProperty()
{
    return get_activation_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>().GlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::FontSizeProperty()
{
    return get_activation_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>().FontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::FontFamilyProperty()
{
    return get_activation_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>().FontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::FontWeightProperty()
{
    return get_activation_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>().FontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::FontStyleProperty()
{
    return get_activation_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>().FontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::IsTextScaleFactorEnabledProperty()
{
    return get_activation_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>().IsTextScaleFactorEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty FontIconSource::MirroredWhenRightToLeftProperty()
{
    return get_activation_factory<FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceStatics>().MirroredWhenRightToLeftProperty();
}

inline Frame::Frame()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<Frame, Windows::UI::Xaml::Controls::IFrameFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty Frame::CacheSizeProperty()
{
    return get_activation_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>().CacheSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty Frame::CanGoBackProperty()
{
    return get_activation_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>().CanGoBackProperty();
}

inline Windows::UI::Xaml::DependencyProperty Frame::CanGoForwardProperty()
{
    return get_activation_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>().CanGoForwardProperty();
}

inline Windows::UI::Xaml::DependencyProperty Frame::CurrentSourcePageTypeProperty()
{
    return get_activation_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>().CurrentSourcePageTypeProperty();
}

inline Windows::UI::Xaml::DependencyProperty Frame::SourcePageTypeProperty()
{
    return get_activation_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>().SourcePageTypeProperty();
}

inline Windows::UI::Xaml::DependencyProperty Frame::BackStackDepthProperty()
{
    return get_activation_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics>().BackStackDepthProperty();
}

inline Windows::UI::Xaml::DependencyProperty Frame::BackStackProperty()
{
    return get_activation_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics2>().BackStackProperty();
}

inline Windows::UI::Xaml::DependencyProperty Frame::ForwardStackProperty()
{
    return get_activation_factory<Frame, Windows::UI::Xaml::Controls::IFrameStatics2>().ForwardStackProperty();
}

inline Grid::Grid()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty Grid::RowProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().RowProperty();
}

inline int32_t Grid::GetRow(Windows::UI::Xaml::FrameworkElement const& element)
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().GetRow(element);
}

inline void Grid::SetRow(Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
{
    get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().SetRow(element, value);
}

inline Windows::UI::Xaml::DependencyProperty Grid::ColumnProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().ColumnProperty();
}

inline int32_t Grid::GetColumn(Windows::UI::Xaml::FrameworkElement const& element)
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().GetColumn(element);
}

inline void Grid::SetColumn(Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
{
    get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().SetColumn(element, value);
}

inline Windows::UI::Xaml::DependencyProperty Grid::RowSpanProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().RowSpanProperty();
}

inline int32_t Grid::GetRowSpan(Windows::UI::Xaml::FrameworkElement const& element)
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().GetRowSpan(element);
}

inline void Grid::SetRowSpan(Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
{
    get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().SetRowSpan(element, value);
}

inline Windows::UI::Xaml::DependencyProperty Grid::ColumnSpanProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().ColumnSpanProperty();
}

inline int32_t Grid::GetColumnSpan(Windows::UI::Xaml::FrameworkElement const& element)
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().GetColumnSpan(element);
}

inline void Grid::SetColumnSpan(Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
{
    get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics>().SetColumnSpan(element, value);
}

inline Windows::UI::Xaml::DependencyProperty Grid::BorderBrushProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>().BorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty Grid::BorderThicknessProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>().BorderThicknessProperty();
}

inline Windows::UI::Xaml::DependencyProperty Grid::CornerRadiusProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>().CornerRadiusProperty();
}

inline Windows::UI::Xaml::DependencyProperty Grid::PaddingProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics2>().PaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty Grid::RowSpacingProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics3>().RowSpacingProperty();
}

inline Windows::UI::Xaml::DependencyProperty Grid::ColumnSpacingProperty()
{
    return get_activation_factory<Grid, Windows::UI::Xaml::Controls::IGridStatics3>().ColumnSpacingProperty();
}

inline GridView::GridView()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<GridView, Windows::UI::Xaml::Controls::IGridViewFactory>().CreateInstance(outer, inner);
}

inline GridViewHeaderItem::GridViewHeaderItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<GridViewHeaderItem, Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory>().CreateInstance(outer, inner);
}

inline GridViewItem::GridViewItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<GridViewItem, Windows::UI::Xaml::Controls::IGridViewItemFactory>().CreateInstance(outer, inner);
}

inline GroupItem::GroupItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<GroupItem, Windows::UI::Xaml::Controls::IGroupItemFactory>().CreateInstance(outer, inner);
}

inline GroupStyle::GroupStyle()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<GroupStyle, Windows::UI::Xaml::Controls::IGroupStyleFactory>().CreateInstance(outer, inner);
}

inline GroupStyleSelector::GroupStyleSelector()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<GroupStyleSelector, Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>().CreateInstance(outer, inner);
}

inline HandwritingView::HandwritingView()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty HandwritingView::PlacementTargetProperty()
{
    return get_activation_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>().PlacementTargetProperty();
}

inline Windows::UI::Xaml::DependencyProperty HandwritingView::PlacementAlignmentProperty()
{
    return get_activation_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>().PlacementAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty HandwritingView::IsOpenProperty()
{
    return get_activation_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>().IsOpenProperty();
}

inline Windows::UI::Xaml::DependencyProperty HandwritingView::AreCandidatesEnabledProperty()
{
    return get_activation_factory<HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewStatics>().AreCandidatesEnabledProperty();
}

inline Hub::Hub()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<Hub, Windows::UI::Xaml::Controls::IHubFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty Hub::HeaderProperty()
{
    return get_activation_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty Hub::HeaderTemplateProperty()
{
    return get_activation_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty Hub::OrientationProperty()
{
    return get_activation_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty Hub::DefaultSectionIndexProperty()
{
    return get_activation_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>().DefaultSectionIndexProperty();
}

inline Windows::UI::Xaml::DependencyProperty Hub::SemanticZoomOwnerProperty()
{
    return get_activation_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>().SemanticZoomOwnerProperty();
}

inline Windows::UI::Xaml::DependencyProperty Hub::IsActiveViewProperty()
{
    return get_activation_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>().IsActiveViewProperty();
}

inline Windows::UI::Xaml::DependencyProperty Hub::IsZoomedInViewProperty()
{
    return get_activation_factory<Hub, Windows::UI::Xaml::Controls::IHubStatics>().IsZoomedInViewProperty();
}

inline HubSection::HubSection()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty HubSection::HeaderProperty()
{
    return get_activation_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty HubSection::HeaderTemplateProperty()
{
    return get_activation_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty HubSection::ContentTemplateProperty()
{
    return get_activation_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>().ContentTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty HubSection::IsHeaderInteractiveProperty()
{
    return get_activation_factory<HubSection, Windows::UI::Xaml::Controls::IHubSectionStatics>().IsHeaderInteractiveProperty();
}

inline HubSectionHeaderClickEventArgs::HubSectionHeaderClickEventArgs() :
    HubSectionHeaderClickEventArgs(get_activation_factory<HubSectionHeaderClickEventArgs>().ActivateInstance<HubSectionHeaderClickEventArgs>())
{}

inline HyperlinkButton::HyperlinkButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<HyperlinkButton, Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty HyperlinkButton::NavigateUriProperty()
{
    return get_activation_factory<HyperlinkButton, Windows::UI::Xaml::Controls::IHyperlinkButtonStatics>().NavigateUriProperty();
}

inline Windows::UI::Xaml::DependencyProperty IconElement::ForegroundProperty()
{
    return get_activation_factory<IconElement, Windows::UI::Xaml::Controls::IIconElementStatics>().ForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty IconSource::ForegroundProperty()
{
    return get_activation_factory<IconSource, Windows::UI::Xaml::Controls::IIconSourceStatics>().ForegroundProperty();
}

inline Image::Image() :
    Image(get_activation_factory<Image>().ActivateInstance<Image>())
{}

inline Windows::UI::Xaml::DependencyProperty Image::SourceProperty()
{
    return get_activation_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>().SourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty Image::StretchProperty()
{
    return get_activation_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>().StretchProperty();
}

inline Windows::UI::Xaml::DependencyProperty Image::NineGridProperty()
{
    return get_activation_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>().NineGridProperty();
}

inline Windows::UI::Xaml::DependencyProperty Image::PlayToSourceProperty()
{
    return get_activation_factory<Image, Windows::UI::Xaml::Controls::IImageStatics>().PlayToSourceProperty();
}

inline InkCanvas::InkCanvas()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkCanvas, Windows::UI::Xaml::Controls::IInkCanvasFactory>().CreateInstance(outer, inner);
}

inline InkToolbar::InkToolbar()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::InitialControlsProperty()
{
    return get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>().InitialControlsProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::ChildrenProperty()
{
    return get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>().ChildrenProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::ActiveToolProperty()
{
    return get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>().ActiveToolProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::InkDrawingAttributesProperty()
{
    return get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>().InkDrawingAttributesProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::IsRulerButtonCheckedProperty()
{
    return get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>().IsRulerButtonCheckedProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::TargetInkCanvasProperty()
{
    return get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics>().TargetInkCanvasProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::IsStencilButtonCheckedProperty()
{
    return get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics2>().IsStencilButtonCheckedProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::ButtonFlyoutPlacementProperty()
{
    return get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics2>().ButtonFlyoutPlacementProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbar::OrientationProperty()
{
    return get_activation_factory<InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarStatics2>().OrientationProperty();
}

inline InkToolbarBallpointPenButton::InkToolbarBallpointPenButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarBallpointPenButton, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory>().CreateInstance(outer, inner);
}

inline InkToolbarCustomPenButton::InkToolbarCustomPenButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarCustomPenButton::CustomPenProperty()
{
    return get_activation_factory<InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>().CustomPenProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarCustomPenButton::ConfigurationContentProperty()
{
    return get_activation_factory<InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>().ConfigurationContentProperty();
}

inline InkToolbarCustomToggleButton::InkToolbarCustomToggleButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarCustomToggleButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory>().CreateInstance(outer, inner);
}

inline InkToolbarCustomToolButton::InkToolbarCustomToolButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarCustomToolButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarCustomToolButton::ConfigurationContentProperty()
{
    return get_activation_factory<InkToolbarCustomToolButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics>().ConfigurationContentProperty();
}

inline InkToolbarEraserButton::InkToolbarEraserButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarEraserButton, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarEraserButton::IsClearAllVisibleProperty()
{
    return get_activation_factory<InkToolbarEraserButton, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2>().IsClearAllVisibleProperty();
}

inline InkToolbarFlyoutItem::InkToolbarFlyoutItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarFlyoutItem::KindProperty()
{
    return get_activation_factory<InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>().KindProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarFlyoutItem::IsCheckedProperty()
{
    return get_activation_factory<InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>().IsCheckedProperty();
}

inline InkToolbarHighlighterButton::InkToolbarHighlighterButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarHighlighterButton, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory>().CreateInstance(outer, inner);
}

inline InkToolbarIsStencilButtonCheckedChangedEventArgs::InkToolbarIsStencilButtonCheckedChangedEventArgs() :
    InkToolbarIsStencilButtonCheckedChangedEventArgs(get_activation_factory<InkToolbarIsStencilButtonCheckedChangedEventArgs>().ActivateInstance<InkToolbarIsStencilButtonCheckedChangedEventArgs>())
{}

inline Windows::UI::Xaml::DependencyProperty InkToolbarMenuButton::IsExtensionGlyphShownProperty()
{
    return get_activation_factory<InkToolbarMenuButton, Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics>().IsExtensionGlyphShownProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::PaletteProperty()
{
    return get_activation_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>().PaletteProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::MinStrokeWidthProperty()
{
    return get_activation_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>().MinStrokeWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::MaxStrokeWidthProperty()
{
    return get_activation_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>().MaxStrokeWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::SelectedBrushProperty()
{
    return get_activation_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>().SelectedBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::SelectedBrushIndexProperty()
{
    return get_activation_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>().SelectedBrushIndexProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenButton::SelectedStrokeWidthProperty()
{
    return get_activation_factory<InkToolbarPenButton, Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>().SelectedStrokeWidthProperty();
}

inline InkToolbarPenConfigurationControl::InkToolbarPenConfigurationControl()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarPenConfigurationControl, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarPenConfigurationControl::PenButtonProperty()
{
    return get_activation_factory<InkToolbarPenConfigurationControl, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics>().PenButtonProperty();
}

inline InkToolbarPencilButton::InkToolbarPencilButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarPencilButton, Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory>().CreateInstance(outer, inner);
}

inline InkToolbarRulerButton::InkToolbarRulerButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarRulerButton, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarRulerButton::RulerProperty()
{
    return get_activation_factory<InkToolbarRulerButton, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics>().RulerProperty();
}

inline InkToolbarStencilButton::InkToolbarStencilButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::RulerProperty()
{
    return get_activation_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>().RulerProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::ProtractorProperty()
{
    return get_activation_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>().ProtractorProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::SelectedStencilProperty()
{
    return get_activation_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>().SelectedStencilProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::IsRulerItemVisibleProperty()
{
    return get_activation_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>().IsRulerItemVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarStencilButton::IsProtractorItemVisibleProperty()
{
    return get_activation_factory<InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>().IsProtractorItemVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty InkToolbarToolButton::IsExtensionGlyphShownProperty()
{
    return get_activation_factory<InkToolbarToolButton, Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics>().IsExtensionGlyphShownProperty();
}

inline ItemClickEventArgs::ItemClickEventArgs() :
    ItemClickEventArgs(get_activation_factory<ItemClickEventArgs>().ActivateInstance<ItemClickEventArgs>())
{}

inline ItemsControl::ItemsControl()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemsSourceProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().ItemsSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemTemplateProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().ItemTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemTemplateSelectorProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().ItemTemplateSelectorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemsPanelProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().ItemsPanelProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::DisplayMemberPathProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().DisplayMemberPathProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemContainerStyleProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().ItemContainerStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemContainerStyleSelectorProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().ItemContainerStyleSelectorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::ItemContainerTransitionsProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().ItemContainerTransitionsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::GroupStyleSelectorProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().GroupStyleSelectorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsControl::IsGroupingProperty()
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().IsGroupingProperty();
}

inline Windows::UI::Xaml::Controls::ItemsControl ItemsControl::GetItemsOwner(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().GetItemsOwner(element);
}

inline Windows::UI::Xaml::Controls::ItemsControl ItemsControl::ItemsControlFromItemContainer(Windows::UI::Xaml::DependencyObject const& container)
{
    return get_activation_factory<ItemsControl, Windows::UI::Xaml::Controls::IItemsControlStatics>().ItemsControlFromItemContainer(container);
}

inline ItemsPanelTemplate::ItemsPanelTemplate() :
    ItemsPanelTemplate(get_activation_factory<ItemsPanelTemplate>().ActivateInstance<ItemsPanelTemplate>())
{}

inline ItemsPickedEventArgs::ItemsPickedEventArgs() :
    ItemsPickedEventArgs(get_activation_factory<ItemsPickedEventArgs>().ActivateInstance<ItemsPickedEventArgs>())
{}

inline ItemsPresenter::ItemsPresenter() :
    ItemsPresenter(get_activation_factory<ItemsPresenter>().ActivateInstance<ItemsPresenter>())
{}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::HeaderProperty()
{
    return get_activation_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::HeaderTemplateProperty()
{
    return get_activation_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::HeaderTransitionsProperty()
{
    return get_activation_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>().HeaderTransitionsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::PaddingProperty()
{
    return get_activation_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics>().PaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::FooterProperty()
{
    return get_activation_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>().FooterProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::FooterTemplateProperty()
{
    return get_activation_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>().FooterTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsPresenter::FooterTransitionsProperty()
{
    return get_activation_factory<ItemsPresenter, Windows::UI::Xaml::Controls::IItemsPresenterStatics2>().FooterTransitionsProperty();
}

inline ItemsStackPanel::ItemsStackPanel() :
    ItemsStackPanel(get_activation_factory<ItemsStackPanel>().ActivateInstance<ItemsStackPanel>())
{}

inline Windows::UI::Xaml::DependencyProperty ItemsStackPanel::GroupPaddingProperty()
{
    return get_activation_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>().GroupPaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsStackPanel::OrientationProperty()
{
    return get_activation_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsStackPanel::GroupHeaderPlacementProperty()
{
    return get_activation_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>().GroupHeaderPlacementProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsStackPanel::CacheLengthProperty()
{
    return get_activation_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics>().CacheLengthProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsStackPanel::AreStickyGroupHeadersEnabledProperty()
{
    return get_activation_factory<ItemsStackPanel, Windows::UI::Xaml::Controls::IItemsStackPanelStatics2>().AreStickyGroupHeadersEnabledProperty();
}

inline ItemsWrapGrid::ItemsWrapGrid() :
    ItemsWrapGrid(get_activation_factory<ItemsWrapGrid>().ActivateInstance<ItemsWrapGrid>())
{}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::GroupPaddingProperty()
{
    return get_activation_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>().GroupPaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::OrientationProperty()
{
    return get_activation_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::MaximumRowsOrColumnsProperty()
{
    return get_activation_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>().MaximumRowsOrColumnsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::ItemWidthProperty()
{
    return get_activation_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>().ItemWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::ItemHeightProperty()
{
    return get_activation_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>().ItemHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::GroupHeaderPlacementProperty()
{
    return get_activation_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>().GroupHeaderPlacementProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::CacheLengthProperty()
{
    return get_activation_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics>().CacheLengthProperty();
}

inline Windows::UI::Xaml::DependencyProperty ItemsWrapGrid::AreStickyGroupHeadersEnabledProperty()
{
    return get_activation_factory<ItemsWrapGrid, Windows::UI::Xaml::Controls::IItemsWrapGridStatics2>().AreStickyGroupHeadersEnabledProperty();
}

inline ListBox::ListBox()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ListBox, Windows::UI::Xaml::Controls::IListBoxFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ListBox::SelectionModeProperty()
{
    return get_activation_factory<ListBox, Windows::UI::Xaml::Controls::IListBoxStatics>().SelectionModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListBox::SingleSelectionFollowsFocusProperty()
{
    return get_activation_factory<ListBox, Windows::UI::Xaml::Controls::IListBoxStatics2>().SingleSelectionFollowsFocusProperty();
}

inline ListBoxItem::ListBoxItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ListBoxItem, Windows::UI::Xaml::Controls::IListBoxItemFactory>().CreateInstance(outer, inner);
}

inline ListPickerFlyout::ListPickerFlyout() :
    ListPickerFlyout(get_activation_factory<ListPickerFlyout>().ActivateInstance<ListPickerFlyout>())
{}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::ItemsSourceProperty()
{
    return get_activation_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>().ItemsSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::ItemTemplateProperty()
{
    return get_activation_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>().ItemTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::DisplayMemberPathProperty()
{
    return get_activation_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>().DisplayMemberPathProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::SelectionModeProperty()
{
    return get_activation_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>().SelectionModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::SelectedIndexProperty()
{
    return get_activation_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>().SelectedIndexProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::SelectedItemProperty()
{
    return get_activation_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>().SelectedItemProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::SelectedValueProperty()
{
    return get_activation_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>().SelectedValueProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListPickerFlyout::SelectedValuePathProperty()
{
    return get_activation_factory<ListPickerFlyout, Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>().SelectedValuePathProperty();
}

inline ListView::ListView()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ListView, Windows::UI::Xaml::Controls::IListViewFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::SelectionModeProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().SelectionModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsSwipeEnabledProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().IsSwipeEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::CanDragItemsProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().CanDragItemsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::CanReorderItemsProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().CanReorderItemsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsItemClickEnabledProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().IsItemClickEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::DataFetchSizeProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().DataFetchSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IncrementalLoadingThresholdProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().IncrementalLoadingThresholdProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IncrementalLoadingTriggerProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().IncrementalLoadingTriggerProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::SemanticZoomOwnerProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().SemanticZoomOwnerProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsActiveViewProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().IsActiveViewProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsZoomedInViewProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().IsZoomedInViewProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::HeaderProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::HeaderTemplateProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::HeaderTransitionsProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics>().HeaderTransitionsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::ShowsScrollingPlaceholdersProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>().ShowsScrollingPlaceholdersProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::FooterProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>().FooterProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::FooterTemplateProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>().FooterTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::FooterTransitionsProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics2>().FooterTransitionsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::ReorderModeProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics3>().ReorderModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::IsMultiSelectCheckBoxEnabledProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics4>().IsMultiSelectCheckBoxEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty ListViewBase::SingleSelectionFollowsFocusProperty()
{
    return get_activation_factory<ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseStatics5>().SingleSelectionFollowsFocusProperty();
}

inline ListViewHeaderItem::ListViewHeaderItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ListViewHeaderItem, Windows::UI::Xaml::Controls::IListViewHeaderItemFactory>().CreateInstance(outer, inner);
}

inline ListViewItem::ListViewItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ListViewItem, Windows::UI::Xaml::Controls::IListViewItemFactory>().CreateInstance(outer, inner);
}

inline hstring ListViewPersistenceHelper::GetRelativeScrollPosition(Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, Windows::UI::Xaml::Controls::ListViewItemToKeyHandler const& itemToKeyHandler)
{
    return get_activation_factory<ListViewPersistenceHelper, Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>().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 get_activation_factory<ListViewPersistenceHelper, Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>().SetRelativeScrollPositionAsync(listViewBase, relativeScrollPosition, keyToItemHandler);
}

inline MediaElement::MediaElement() :
    MediaElement(get_activation_factory<MediaElement>().ActivateInstance<MediaElement>())
{}

inline Windows::UI::Xaml::DependencyProperty MediaElement::PosterSourceProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().PosterSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::SourceProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().SourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsMutedProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().IsMutedProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsAudioOnlyProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().IsAudioOnlyProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AutoPlayProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().AutoPlayProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::VolumeProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().VolumeProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::BalanceProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().BalanceProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::NaturalVideoHeightProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().NaturalVideoHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::NaturalVideoWidthProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().NaturalVideoWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::NaturalDurationProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().NaturalDurationProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::PositionProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().PositionProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::DownloadProgressProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().DownloadProgressProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::BufferingProgressProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().BufferingProgressProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::DownloadProgressOffsetProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().DownloadProgressOffsetProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::CurrentStateProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().CurrentStateProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::CanSeekProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().CanSeekProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::CanPauseProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().CanPauseProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AudioStreamCountProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().AudioStreamCountProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AudioStreamIndexProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().AudioStreamIndexProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::PlaybackRateProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().PlaybackRateProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsLoopingProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().IsLoopingProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::PlayToSourceProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().PlayToSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::DefaultPlaybackRateProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().DefaultPlaybackRateProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AspectRatioWidthProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().AspectRatioWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AspectRatioHeightProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().AspectRatioHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::RealTimePlaybackProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().RealTimePlaybackProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AudioCategoryProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().AudioCategoryProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AudioDeviceTypeProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().AudioDeviceTypeProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::ProtectionManagerProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().ProtectionManagerProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::Stereo3DVideoPackingModeProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().Stereo3DVideoPackingModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::Stereo3DVideoRenderModeProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().Stereo3DVideoRenderModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsStereo3DVideoProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().IsStereo3DVideoProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::ActualStereo3DVideoPackingModeProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics>().ActualStereo3DVideoPackingModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::AreTransportControlsEnabledProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>().AreTransportControlsEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::StretchProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>().StretchProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::IsFullWindowProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>().IsFullWindowProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaElement::PlayToPreferredSourceUriProperty()
{
    return get_activation_factory<MediaElement, Windows::UI::Xaml::Controls::IMediaElementStatics2>().PlayToPreferredSourceUriProperty();
}

inline MediaPlayerElement::MediaPlayerElement()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::SourceProperty()
{
    return get_activation_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>().SourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::AreTransportControlsEnabledProperty()
{
    return get_activation_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>().AreTransportControlsEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::PosterSourceProperty()
{
    return get_activation_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>().PosterSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::StretchProperty()
{
    return get_activation_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>().StretchProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::AutoPlayProperty()
{
    return get_activation_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>().AutoPlayProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::IsFullWindowProperty()
{
    return get_activation_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>().IsFullWindowProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerElement::MediaPlayerProperty()
{
    return get_activation_factory<MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>().MediaPlayerProperty();
}

inline MediaPlayerPresenter::MediaPlayerPresenter()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerPresenter::MediaPlayerProperty()
{
    return get_activation_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>().MediaPlayerProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerPresenter::StretchProperty()
{
    return get_activation_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>().StretchProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaPlayerPresenter::IsFullWindowProperty()
{
    return get_activation_factory<MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>().IsFullWindowProperty();
}

inline MediaTransportControls::MediaTransportControls()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFullWindowButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsFullWindowButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFullWindowEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsFullWindowEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsZoomButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsZoomButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsZoomEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsZoomEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFastForwardButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsFastForwardButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFastForwardEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsFastForwardEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFastRewindButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsFastRewindButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsFastRewindEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsFastRewindEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsStopButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsStopButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsStopEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsStopEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsVolumeButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsVolumeButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsVolumeEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsVolumeEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsPlaybackRateButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsPlaybackRateButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsPlaybackRateEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsPlaybackRateEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSeekBarVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsSeekBarVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSeekEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsSeekEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsCompactProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>().IsCompactProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSkipForwardButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>().IsSkipForwardButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSkipForwardEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>().IsSkipForwardEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSkipBackwardButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>().IsSkipBackwardButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsSkipBackwardEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>().IsSkipBackwardEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsNextTrackButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>().IsNextTrackButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsPreviousTrackButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>().IsPreviousTrackButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::FastPlayFallbackBehaviourProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>().FastPlayFallbackBehaviourProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::ShowAndHideAutomaticallyProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>().ShowAndHideAutomaticallyProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsRepeatEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>().IsRepeatEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsRepeatButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>().IsRepeatButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsCompactOverlayButtonVisibleProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>().IsCompactOverlayButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControls::IsCompactOverlayEnabledProperty()
{
    return get_activation_factory<MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>().IsCompactOverlayEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty MediaTransportControlsHelper::DropoutOrderProperty()
{
    return get_activation_factory<MediaTransportControlsHelper, Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>().DropoutOrderProperty();
}

inline Windows::Foundation::IReference<int32_t> MediaTransportControlsHelper::GetDropoutOrder(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<MediaTransportControlsHelper, Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>().GetDropoutOrder(element);
}

inline void MediaTransportControlsHelper::SetDropoutOrder(Windows::UI::Xaml::UIElement const& element, optional<int32_t> const& value)
{
    get_activation_factory<MediaTransportControlsHelper, Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>().SetDropoutOrder(element, value);
}

inline MenuFlyout::MenuFlyout()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<MenuFlyout, Windows::UI::Xaml::Controls::IMenuFlyoutFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyout::MenuFlyoutPresenterStyleProperty()
{
    return get_activation_factory<MenuFlyout, Windows::UI::Xaml::Controls::IMenuFlyoutStatics>().MenuFlyoutPresenterStyleProperty();
}

inline MenuFlyoutItem::MenuFlyoutItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutItem::TextProperty()
{
    return get_activation_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>().TextProperty();
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutItem::CommandProperty()
{
    return get_activation_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>().CommandProperty();
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutItem::CommandParameterProperty()
{
    return get_activation_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>().CommandParameterProperty();
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutItem::IconProperty()
{
    return get_activation_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2>().IconProperty();
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutItem::KeyboardAcceleratorTextOverrideProperty()
{
    return get_activation_factory<MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3>().KeyboardAcceleratorTextOverrideProperty();
}

inline MenuFlyoutPresenter::MenuFlyoutPresenter()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<MenuFlyoutPresenter, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>().CreateInstance(outer, inner);
}

inline MenuFlyoutSeparator::MenuFlyoutSeparator()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<MenuFlyoutSeparator, Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory>().CreateInstance(outer, inner);
}

inline MenuFlyoutSubItem::MenuFlyoutSubItem() :
    MenuFlyoutSubItem(get_activation_factory<MenuFlyoutSubItem>().ActivateInstance<MenuFlyoutSubItem>())
{}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutSubItem::TextProperty()
{
    return get_activation_factory<MenuFlyoutSubItem, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics>().TextProperty();
}

inline Windows::UI::Xaml::DependencyProperty MenuFlyoutSubItem::IconProperty()
{
    return get_activation_factory<MenuFlyoutSubItem, Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2>().IconProperty();
}

inline NavigationView::NavigationView()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsPaneOpenProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().IsPaneOpenProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::CompactModeThresholdWidthProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().CompactModeThresholdWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::ExpandedModeThresholdWidthProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().ExpandedModeThresholdWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::PaneFooterProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().PaneFooterProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::HeaderProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::HeaderTemplateProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::DisplayModeProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().DisplayModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsSettingsVisibleProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().IsSettingsVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsPaneToggleButtonVisibleProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().IsPaneToggleButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::AlwaysShowHeaderProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().AlwaysShowHeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::CompactPaneLengthProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().CompactPaneLengthProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::OpenPaneLengthProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().OpenPaneLengthProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::PaneToggleButtonStyleProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().PaneToggleButtonStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemsProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().MenuItemsProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemsSourceProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().MenuItemsSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::SelectedItemProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().SelectedItemProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::SettingsItemProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().SettingsItemProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::AutoSuggestBoxProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().AutoSuggestBoxProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemTemplateProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().MenuItemTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemTemplateSelectorProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().MenuItemTemplateSelectorProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemContainerStyleProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().MenuItemContainerStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::MenuItemContainerStyleSelectorProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics>().MenuItemContainerStyleSelectorProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsBackButtonVisibleProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics2>().IsBackButtonVisibleProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::IsBackEnabledProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics2>().IsBackEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationView::PaneTitleProperty()
{
    return get_activation_factory<NavigationView, Windows::UI::Xaml::Controls::INavigationViewStatics2>().PaneTitleProperty();
}

inline NavigationViewItem::NavigationViewItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty NavigationViewItem::IconProperty()
{
    return get_activation_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemStatics>().IconProperty();
}

inline Windows::UI::Xaml::DependencyProperty NavigationViewItem::CompactPaneLengthProperty()
{
    return get_activation_factory<NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemStatics>().CompactPaneLengthProperty();
}

inline NavigationViewItemHeader::NavigationViewItemHeader()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<NavigationViewItemHeader, Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory>().CreateInstance(outer, inner);
}

inline NavigationViewItemInvokedEventArgs::NavigationViewItemInvokedEventArgs() :
    NavigationViewItemInvokedEventArgs(get_activation_factory<NavigationViewItemInvokedEventArgs>().ActivateInstance<NavigationViewItemInvokedEventArgs>())
{}

inline NavigationViewItemSeparator::NavigationViewItemSeparator()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<NavigationViewItemSeparator, Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory>().CreateInstance(outer, inner);
}

inline NavigationViewList::NavigationViewList()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<NavigationViewList, Windows::UI::Xaml::Controls::INavigationViewListFactory>().CreateInstance(outer, inner);
}

inline Page::Page()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<Page, Windows::UI::Xaml::Controls::IPageFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty Page::FrameProperty()
{
    return get_activation_factory<Page, Windows::UI::Xaml::Controls::IPageStatics>().FrameProperty();
}

inline Windows::UI::Xaml::DependencyProperty Page::TopAppBarProperty()
{
    return get_activation_factory<Page, Windows::UI::Xaml::Controls::IPageStatics>().TopAppBarProperty();
}

inline Windows::UI::Xaml::DependencyProperty Page::BottomAppBarProperty()
{
    return get_activation_factory<Page, Windows::UI::Xaml::Controls::IPageStatics>().BottomAppBarProperty();
}

inline Windows::UI::Xaml::DependencyProperty Panel::BackgroundProperty()
{
    return get_activation_factory<Panel, Windows::UI::Xaml::Controls::IPanelStatics>().BackgroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty Panel::IsItemsHostProperty()
{
    return get_activation_factory<Panel, Windows::UI::Xaml::Controls::IPanelStatics>().IsItemsHostProperty();
}

inline Windows::UI::Xaml::DependencyProperty Panel::ChildrenTransitionsProperty()
{
    return get_activation_factory<Panel, Windows::UI::Xaml::Controls::IPanelStatics>().ChildrenTransitionsProperty();
}

inline ParallaxView::ParallaxView()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::ChildProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().ChildProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::HorizontalSourceEndOffsetProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().HorizontalSourceEndOffsetProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::HorizontalSourceOffsetKindProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().HorizontalSourceOffsetKindProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::HorizontalSourceStartOffsetProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().HorizontalSourceStartOffsetProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::MaxHorizontalShiftRatioProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().MaxHorizontalShiftRatioProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::HorizontalShiftProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().HorizontalShiftProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::IsHorizontalShiftClampedProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().IsHorizontalShiftClampedProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::IsVerticalShiftClampedProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().IsVerticalShiftClampedProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::SourceProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().SourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::VerticalSourceEndOffsetProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().VerticalSourceEndOffsetProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::VerticalSourceOffsetKindProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().VerticalSourceOffsetKindProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::VerticalSourceStartOffsetProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().VerticalSourceStartOffsetProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::MaxVerticalShiftRatioProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().MaxVerticalShiftRatioProperty();
}

inline Windows::UI::Xaml::DependencyProperty ParallaxView::VerticalShiftProperty()
{
    return get_activation_factory<ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewStatics>().VerticalShiftProperty();
}

inline PasswordBox::PasswordBox() :
    PasswordBox(get_activation_factory<PasswordBox>().ActivateInstance<PasswordBox>())
{}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::PasswordProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>().PasswordProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::PasswordCharProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>().PasswordCharProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::IsPasswordRevealButtonEnabledProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>().IsPasswordRevealButtonEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::MaxLengthProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics>().MaxLengthProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::HeaderProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::HeaderTemplateProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::PlaceholderTextProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>().PlaceholderTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::SelectionHighlightColorProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>().SelectionHighlightColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics2>().PreventKeyboardDisplayOnProgrammaticFocusProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::PasswordRevealModeProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>().PasswordRevealModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::TextReadingOrderProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>().TextReadingOrderProperty();
}

inline Windows::UI::Xaml::DependencyProperty PasswordBox::InputScopeProperty()
{
    return get_activation_factory<PasswordBox, Windows::UI::Xaml::Controls::IPasswordBoxStatics3>().InputScopeProperty();
}

inline PathIcon::PathIcon()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<PathIcon, Windows::UI::Xaml::Controls::IPathIconFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty PathIcon::DataProperty()
{
    return get_activation_factory<PathIcon, Windows::UI::Xaml::Controls::IPathIconStatics>().DataProperty();
}

inline PathIconSource::PathIconSource()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<PathIconSource, Windows::UI::Xaml::Controls::IPathIconSourceFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty PathIconSource::DataProperty()
{
    return get_activation_factory<PathIconSource, Windows::UI::Xaml::Controls::IPathIconSourceStatics>().DataProperty();
}

inline PersonPicture::PersonPicture()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::BadgeNumberProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().BadgeNumberProperty();
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::BadgeGlyphProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().BadgeGlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::BadgeImageSourceProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().BadgeImageSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::BadgeTextProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().BadgeTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::IsGroupProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().IsGroupProperty();
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::ContactProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().ContactProperty();
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::DisplayNameProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().DisplayNameProperty();
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::InitialsProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().InitialsProperty();
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::PreferSmallImageProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().PreferSmallImageProperty();
}

inline Windows::UI::Xaml::DependencyProperty PersonPicture::ProfilePictureProperty()
{
    return get_activation_factory<PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureStatics>().ProfilePictureProperty();
}

inline PickerConfirmedEventArgs::PickerConfirmedEventArgs() :
    PickerConfirmedEventArgs(get_activation_factory<PickerConfirmedEventArgs>().ActivateInstance<PickerConfirmedEventArgs>())
{}

inline PickerFlyout::PickerFlyout() :
    PickerFlyout(get_activation_factory<PickerFlyout>().ActivateInstance<PickerFlyout>())
{}

inline Windows::UI::Xaml::DependencyProperty PickerFlyout::ContentProperty()
{
    return get_activation_factory<PickerFlyout, Windows::UI::Xaml::Controls::IPickerFlyoutStatics>().ContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty PickerFlyout::ConfirmationButtonsVisibleProperty()
{
    return get_activation_factory<PickerFlyout, Windows::UI::Xaml::Controls::IPickerFlyoutStatics>().ConfirmationButtonsVisibleProperty();
}

inline Pivot::Pivot()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty Pivot::TitleProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>().TitleProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::TitleTemplateProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>().TitleTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::HeaderTemplateProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::SelectedIndexProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>().SelectedIndexProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::SelectedItemProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>().SelectedItemProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::IsLockedProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>().IsLockedProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::SlideInAnimationGroupProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>().SlideInAnimationGroupProperty();
}

inline Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup Pivot::GetSlideInAnimationGroup(Windows::UI::Xaml::FrameworkElement const& element)
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>().GetSlideInAnimationGroup(element);
}

inline void Pivot::SetSlideInAnimationGroup(Windows::UI::Xaml::FrameworkElement const& element, Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup const& value)
{
    get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics>().SetSlideInAnimationGroup(element, value);
}

inline Windows::UI::Xaml::DependencyProperty Pivot::LeftHeaderProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>().LeftHeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::LeftHeaderTemplateProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>().LeftHeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::RightHeaderProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>().RightHeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::RightHeaderTemplateProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics2>().RightHeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::HeaderFocusVisualPlacementProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics3>().HeaderFocusVisualPlacementProperty();
}

inline Windows::UI::Xaml::DependencyProperty Pivot::IsHeaderItemsCarouselEnabledProperty()
{
    return get_activation_factory<Pivot, Windows::UI::Xaml::Controls::IPivotStatics3>().IsHeaderItemsCarouselEnabledProperty();
}

inline PivotItem::PivotItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<PivotItem, Windows::UI::Xaml::Controls::IPivotItemFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty PivotItem::HeaderProperty()
{
    return get_activation_factory<PivotItem, Windows::UI::Xaml::Controls::IPivotItemStatics>().HeaderProperty();
}

inline PivotItemEventArgs::PivotItemEventArgs() :
    PivotItemEventArgs(get_activation_factory<PivotItemEventArgs>().ActivateInstance<PivotItemEventArgs>())
{}

inline ProgressBar::ProgressBar()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ProgressBar::IsIndeterminateProperty()
{
    return get_activation_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarStatics>().IsIndeterminateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ProgressBar::ShowErrorProperty()
{
    return get_activation_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarStatics>().ShowErrorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ProgressBar::ShowPausedProperty()
{
    return get_activation_factory<ProgressBar, Windows::UI::Xaml::Controls::IProgressBarStatics>().ShowPausedProperty();
}

inline ProgressRing::ProgressRing() :
    ProgressRing(get_activation_factory<ProgressRing>().ActivateInstance<ProgressRing>())
{}

inline Windows::UI::Xaml::DependencyProperty ProgressRing::IsActiveProperty()
{
    return get_activation_factory<ProgressRing, Windows::UI::Xaml::Controls::IProgressRingStatics>().IsActiveProperty();
}

inline RadioButton::RadioButton()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<RadioButton, Windows::UI::Xaml::Controls::IRadioButtonFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty RadioButton::GroupNameProperty()
{
    return get_activation_factory<RadioButton, Windows::UI::Xaml::Controls::IRadioButtonStatics>().GroupNameProperty();
}

inline RatingControl::RatingControl()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::CaptionProperty()
{
    return get_activation_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>().CaptionProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::InitialSetValueProperty()
{
    return get_activation_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>().InitialSetValueProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::IsClearEnabledProperty()
{
    return get_activation_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>().IsClearEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::IsReadOnlyProperty()
{
    return get_activation_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>().IsReadOnlyProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::MaxRatingProperty()
{
    return get_activation_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>().MaxRatingProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::PlaceholderValueProperty()
{
    return get_activation_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>().PlaceholderValueProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::ItemInfoProperty()
{
    return get_activation_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>().ItemInfoProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingControl::ValueProperty()
{
    return get_activation_factory<RatingControl, Windows::UI::Xaml::Controls::IRatingControlStatics>().ValueProperty();
}

inline RatingItemFontInfo::RatingItemFontInfo()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::DisabledGlyphProperty()
{
    return get_activation_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>().DisabledGlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::GlyphProperty()
{
    return get_activation_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>().GlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::PlaceholderGlyphProperty()
{
    return get_activation_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>().PlaceholderGlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::PointerOverGlyphProperty()
{
    return get_activation_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>().PointerOverGlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::PointerOverPlaceholderGlyphProperty()
{
    return get_activation_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>().PointerOverPlaceholderGlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemFontInfo::UnsetGlyphProperty()
{
    return get_activation_factory<RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>().UnsetGlyphProperty();
}

inline RatingItemImageInfo::RatingItemImageInfo()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::DisabledImageProperty()
{
    return get_activation_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>().DisabledImageProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::ImageProperty()
{
    return get_activation_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>().ImageProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::PlaceholderImageProperty()
{
    return get_activation_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>().PlaceholderImageProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::PointerOverImageProperty()
{
    return get_activation_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>().PointerOverImageProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::PointerOverPlaceholderImageProperty()
{
    return get_activation_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>().PointerOverPlaceholderImageProperty();
}

inline Windows::UI::Xaml::DependencyProperty RatingItemImageInfo::UnsetImageProperty()
{
    return get_activation_factory<RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>().UnsetImageProperty();
}

inline RatingItemInfo::RatingItemInfo()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<RatingItemInfo, Windows::UI::Xaml::Controls::IRatingItemInfoFactory>().CreateInstance(outer, inner);
}

inline RefreshContainer::RefreshContainer()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<RefreshContainer, Windows::UI::Xaml::Controls::IRefreshContainerFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty RefreshContainer::VisualizerProperty()
{
    return get_activation_factory<RefreshContainer, Windows::UI::Xaml::Controls::IRefreshContainerStatics>().VisualizerProperty();
}

inline Windows::UI::Xaml::DependencyProperty RefreshContainer::PullDirectionProperty()
{
    return get_activation_factory<RefreshContainer, Windows::UI::Xaml::Controls::IRefreshContainerStatics>().PullDirectionProperty();
}

inline RefreshVisualizer::RefreshVisualizer()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty RefreshVisualizer::InfoProviderProperty()
{
    return get_activation_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>().InfoProviderProperty();
}

inline Windows::UI::Xaml::DependencyProperty RefreshVisualizer::OrientationProperty()
{
    return get_activation_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty RefreshVisualizer::ContentProperty()
{
    return get_activation_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>().ContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty RefreshVisualizer::StateProperty()
{
    return get_activation_factory<RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>().StateProperty();
}

inline RelativePanel::RelativePanel()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::LeftOfProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().LeftOfProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetLeftOf(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetLeftOf(element);
}

inline void RelativePanel::SetLeftOf(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetLeftOf(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AboveProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AboveProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetAbove(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAbove(element);
}

inline void RelativePanel::SetAbove(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAbove(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::RightOfProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().RightOfProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetRightOf(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetRightOf(element);
}

inline void RelativePanel::SetRightOf(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetRightOf(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::BelowProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().BelowProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetBelow(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetBelow(element);
}

inline void RelativePanel::SetBelow(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetBelow(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignHorizontalCenterWithProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignHorizontalCenterWithProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetAlignHorizontalCenterWith(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignHorizontalCenterWith(element);
}

inline void RelativePanel::SetAlignHorizontalCenterWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignHorizontalCenterWith(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignVerticalCenterWithProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignVerticalCenterWithProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetAlignVerticalCenterWith(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignVerticalCenterWith(element);
}

inline void RelativePanel::SetAlignVerticalCenterWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignVerticalCenterWith(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignLeftWithProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignLeftWithProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetAlignLeftWith(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignLeftWith(element);
}

inline void RelativePanel::SetAlignLeftWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignLeftWith(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignTopWithProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignTopWithProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetAlignTopWith(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignTopWith(element);
}

inline void RelativePanel::SetAlignTopWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignTopWith(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignRightWithProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignRightWithProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetAlignRightWith(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignRightWith(element);
}

inline void RelativePanel::SetAlignRightWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignRightWith(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignBottomWithProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignBottomWithProperty();
}

inline Windows::Foundation::IInspectable RelativePanel::GetAlignBottomWith(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignBottomWith(element);
}

inline void RelativePanel::SetAlignBottomWith(Windows::UI::Xaml::UIElement const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignBottomWith(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignLeftWithPanelProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignLeftWithPanelProperty();
}

inline bool RelativePanel::GetAlignLeftWithPanel(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignLeftWithPanel(element);
}

inline void RelativePanel::SetAlignLeftWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignLeftWithPanel(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignTopWithPanelProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignTopWithPanelProperty();
}

inline bool RelativePanel::GetAlignTopWithPanel(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignTopWithPanel(element);
}

inline void RelativePanel::SetAlignTopWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignTopWithPanel(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignRightWithPanelProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignRightWithPanelProperty();
}

inline bool RelativePanel::GetAlignRightWithPanel(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignRightWithPanel(element);
}

inline void RelativePanel::SetAlignRightWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignRightWithPanel(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignBottomWithPanelProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignBottomWithPanelProperty();
}

inline bool RelativePanel::GetAlignBottomWithPanel(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignBottomWithPanel(element);
}

inline void RelativePanel::SetAlignBottomWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignBottomWithPanel(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignHorizontalCenterWithPanelProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignHorizontalCenterWithPanelProperty();
}

inline bool RelativePanel::GetAlignHorizontalCenterWithPanel(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignHorizontalCenterWithPanel(element);
}

inline void RelativePanel::SetAlignHorizontalCenterWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignHorizontalCenterWithPanel(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::AlignVerticalCenterWithPanelProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().AlignVerticalCenterWithPanelProperty();
}

inline bool RelativePanel::GetAlignVerticalCenterWithPanel(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().GetAlignVerticalCenterWithPanel(element);
}

inline void RelativePanel::SetAlignVerticalCenterWithPanel(Windows::UI::Xaml::UIElement const& element, bool value)
{
    get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().SetAlignVerticalCenterWithPanel(element, value);
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::BorderBrushProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().BorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::BorderThicknessProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().BorderThicknessProperty();
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::CornerRadiusProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().CornerRadiusProperty();
}

inline Windows::UI::Xaml::DependencyProperty RelativePanel::PaddingProperty()
{
    return get_activation_factory<RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelStatics>().PaddingProperty();
}

inline RichEditBox::RichEditBox()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::IsReadOnlyProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>().IsReadOnlyProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::AcceptsReturnProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>().AcceptsReturnProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::TextAlignmentProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>().TextAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::TextWrappingProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>().TextWrappingProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::IsSpellCheckEnabledProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>().IsSpellCheckEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::IsTextPredictionEnabledProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>().IsTextPredictionEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::InputScopeProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics>().InputScopeProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::HeaderProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::HeaderTemplateProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::PlaceholderTextProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>().PlaceholderTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::SelectionHighlightColorProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>().SelectionHighlightColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>().PreventKeyboardDisplayOnProgrammaticFocusProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::IsColorFontEnabledProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics2>().IsColorFontEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::DesiredCandidateWindowAlignmentProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics3>().DesiredCandidateWindowAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::TextReadingOrderProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics3>().TextReadingOrderProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::ClipboardCopyFormatProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics4>().ClipboardCopyFormatProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::SelectionHighlightColorWhenNotFocusedProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics5>().SelectionHighlightColorWhenNotFocusedProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::MaxLengthProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics5>().MaxLengthProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::HorizontalTextAlignmentProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>().HorizontalTextAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::CharacterCasingProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>().CharacterCasingProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::DisabledFormattingAcceleratorsProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics6>().DisabledFormattingAcceleratorsProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::ContentLinkForegroundColorProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>().ContentLinkForegroundColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::ContentLinkBackgroundColorProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>().ContentLinkBackgroundColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::ContentLinkProvidersProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>().ContentLinkProvidersProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::HandwritingViewProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>().HandwritingViewProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichEditBox::IsHandwritingViewEnabledProperty()
{
    return get_activation_factory<RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxStatics7>().IsHandwritingViewEnabledProperty();
}

inline RichTextBlock::RichTextBlock() :
    RichTextBlock(get_activation_factory<RichTextBlock>().ActivateInstance<RichTextBlock>())
{}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::FontSizeProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().FontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::FontFamilyProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().FontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::FontWeightProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().FontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::FontStyleProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().FontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::FontStretchProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().FontStretchProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::ForegroundProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().ForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextWrappingProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().TextWrappingProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextTrimmingProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().TextTrimmingProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextAlignmentProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().TextAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::PaddingProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().PaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::LineHeightProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().LineHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::LineStackingStrategyProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().LineStackingStrategyProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::CharacterSpacingProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().CharacterSpacingProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::OverflowContentTargetProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().OverflowContentTargetProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::IsTextSelectionEnabledProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().IsTextSelectionEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::HasOverflowContentProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().HasOverflowContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::SelectedTextProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().SelectedTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextIndentProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics>().TextIndentProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::MaxLinesProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>().MaxLinesProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextLineBoundsProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>().TextLineBoundsProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::SelectionHighlightColorProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>().SelectionHighlightColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::OpticalMarginAlignmentProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>().OpticalMarginAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::IsColorFontEnabledProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>().IsColorFontEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextReadingOrderProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics2>().TextReadingOrderProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::IsTextScaleFactorEnabledProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics3>().IsTextScaleFactorEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::TextDecorationsProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics4>().TextDecorationsProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::IsTextTrimmedProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics5>().IsTextTrimmedProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlock::HorizontalTextAlignmentProperty()
{
    return get_activation_factory<RichTextBlock, Windows::UI::Xaml::Controls::IRichTextBlockStatics5>().HorizontalTextAlignmentProperty();
}

inline RichTextBlockOverflow::RichTextBlockOverflow() :
    RichTextBlockOverflow(get_activation_factory<RichTextBlockOverflow>().ActivateInstance<RichTextBlockOverflow>())
{}

inline Windows::UI::Xaml::DependencyProperty RichTextBlockOverflow::OverflowContentTargetProperty()
{
    return get_activation_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>().OverflowContentTargetProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlockOverflow::PaddingProperty()
{
    return get_activation_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>().PaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlockOverflow::HasOverflowContentProperty()
{
    return get_activation_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>().HasOverflowContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlockOverflow::MaxLinesProperty()
{
    return get_activation_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2>().MaxLinesProperty();
}

inline Windows::UI::Xaml::DependencyProperty RichTextBlockOverflow::IsTextTrimmedProperty()
{
    return get_activation_factory<RichTextBlockOverflow, Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3>().IsTextTrimmedProperty();
}

inline RowDefinition::RowDefinition() :
    RowDefinition(get_activation_factory<RowDefinition>().ActivateInstance<RowDefinition>())
{}

inline Windows::UI::Xaml::DependencyProperty RowDefinition::HeightProperty()
{
    return get_activation_factory<RowDefinition, Windows::UI::Xaml::Controls::IRowDefinitionStatics>().HeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty RowDefinition::MaxHeightProperty()
{
    return get_activation_factory<RowDefinition, Windows::UI::Xaml::Controls::IRowDefinitionStatics>().MaxHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty RowDefinition::MinHeightProperty()
{
    return get_activation_factory<RowDefinition, Windows::UI::Xaml::Controls::IRowDefinitionStatics>().MinHeightProperty();
}

inline ScrollContentPresenter::ScrollContentPresenter() :
    ScrollContentPresenter(get_activation_factory<ScrollContentPresenter>().ActivateInstance<ScrollContentPresenter>())
{}

inline ScrollViewer::ScrollViewer() :
    ScrollViewer(get_activation_factory<ScrollViewer>().ActivateInstance<ScrollViewer>())
{}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalSnapPointsAlignmentProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().HorizontalSnapPointsAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalSnapPointsAlignmentProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().VerticalSnapPointsAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalSnapPointsTypeProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().HorizontalSnapPointsTypeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalSnapPointsTypeProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().VerticalSnapPointsTypeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ZoomSnapPointsTypeProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ZoomSnapPointsTypeProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalOffsetProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().HorizontalOffsetProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ViewportWidthProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ViewportWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ScrollableWidthProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ScrollableWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ComputedHorizontalScrollBarVisibilityProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ComputedHorizontalScrollBarVisibilityProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ExtentWidthProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ExtentWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalOffsetProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().VerticalOffsetProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ViewportHeightProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ViewportHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ScrollableHeightProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ScrollableHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ComputedVerticalScrollBarVisibilityProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ComputedVerticalScrollBarVisibilityProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ExtentHeightProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ExtentHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::MinZoomFactorProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().MinZoomFactorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::MaxZoomFactorProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().MaxZoomFactorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ZoomFactorProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ZoomFactorProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ZoomSnapPointsProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ZoomSnapPointsProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalScrollBarVisibilityProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().HorizontalScrollBarVisibilityProperty();
}

inline Windows::UI::Xaml::Controls::ScrollBarVisibility ScrollViewer::GetHorizontalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetHorizontalScrollBarVisibility(element);
}

inline void ScrollViewer::SetHorizontalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollBarVisibility const& horizontalScrollBarVisibility)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetHorizontalScrollBarVisibility(element, horizontalScrollBarVisibility);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalScrollBarVisibilityProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().VerticalScrollBarVisibilityProperty();
}

inline Windows::UI::Xaml::Controls::ScrollBarVisibility ScrollViewer::GetVerticalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetVerticalScrollBarVisibility(element);
}

inline void ScrollViewer::SetVerticalScrollBarVisibility(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollBarVisibility const& verticalScrollBarVisibility)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetVerticalScrollBarVisibility(element, verticalScrollBarVisibility);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::IsHorizontalRailEnabledProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().IsHorizontalRailEnabledProperty();
}

inline bool ScrollViewer::GetIsHorizontalRailEnabled(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetIsHorizontalRailEnabled(element);
}

inline void ScrollViewer::SetIsHorizontalRailEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalRailEnabled)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetIsHorizontalRailEnabled(element, isHorizontalRailEnabled);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::IsVerticalRailEnabledProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().IsVerticalRailEnabledProperty();
}

inline bool ScrollViewer::GetIsVerticalRailEnabled(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetIsVerticalRailEnabled(element);
}

inline void ScrollViewer::SetIsVerticalRailEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isVerticalRailEnabled)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetIsVerticalRailEnabled(element, isVerticalRailEnabled);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::IsHorizontalScrollChainingEnabledProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().IsHorizontalScrollChainingEnabledProperty();
}

inline bool ScrollViewer::GetIsHorizontalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetIsHorizontalScrollChainingEnabled(element);
}

inline void ScrollViewer::SetIsHorizontalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalScrollChainingEnabled)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetIsHorizontalScrollChainingEnabled(element, isHorizontalScrollChainingEnabled);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::IsVerticalScrollChainingEnabledProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().IsVerticalScrollChainingEnabledProperty();
}

inline bool ScrollViewer::GetIsVerticalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetIsVerticalScrollChainingEnabled(element);
}

inline void ScrollViewer::SetIsVerticalScrollChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isVerticalScrollChainingEnabled)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetIsVerticalScrollChainingEnabled(element, isVerticalScrollChainingEnabled);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::IsZoomChainingEnabledProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().IsZoomChainingEnabledProperty();
}

inline bool ScrollViewer::GetIsZoomChainingEnabled(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetIsZoomChainingEnabled(element);
}

inline void ScrollViewer::SetIsZoomChainingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isZoomChainingEnabled)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetIsZoomChainingEnabled(element, isZoomChainingEnabled);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::IsScrollInertiaEnabledProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().IsScrollInertiaEnabledProperty();
}

inline bool ScrollViewer::GetIsScrollInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetIsScrollInertiaEnabled(element);
}

inline void ScrollViewer::SetIsScrollInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isScrollInertiaEnabled)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetIsScrollInertiaEnabled(element, isScrollInertiaEnabled);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::IsZoomInertiaEnabledProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().IsZoomInertiaEnabledProperty();
}

inline bool ScrollViewer::GetIsZoomInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetIsZoomInertiaEnabled(element);
}

inline void ScrollViewer::SetIsZoomInertiaEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isZoomInertiaEnabled)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetIsZoomInertiaEnabled(element, isZoomInertiaEnabled);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::HorizontalScrollModeProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().HorizontalScrollModeProperty();
}

inline Windows::UI::Xaml::Controls::ScrollMode ScrollViewer::GetHorizontalScrollMode(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetHorizontalScrollMode(element);
}

inline void ScrollViewer::SetHorizontalScrollMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollMode const& horizontalScrollMode)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetHorizontalScrollMode(element, horizontalScrollMode);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::VerticalScrollModeProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().VerticalScrollModeProperty();
}

inline Windows::UI::Xaml::Controls::ScrollMode ScrollViewer::GetVerticalScrollMode(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetVerticalScrollMode(element);
}

inline void ScrollViewer::SetVerticalScrollMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ScrollMode const& verticalScrollMode)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetVerticalScrollMode(element, verticalScrollMode);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::ZoomModeProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().ZoomModeProperty();
}

inline Windows::UI::Xaml::Controls::ZoomMode ScrollViewer::GetZoomMode(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetZoomMode(element);
}

inline void ScrollViewer::SetZoomMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::ZoomMode const& zoomMode)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetZoomMode(element, zoomMode);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::IsDeferredScrollingEnabledProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().IsDeferredScrollingEnabledProperty();
}

inline bool ScrollViewer::GetIsDeferredScrollingEnabled(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetIsDeferredScrollingEnabled(element);
}

inline void ScrollViewer::SetIsDeferredScrollingEnabled(Windows::UI::Xaml::DependencyObject const& element, bool isDeferredScrollingEnabled)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetIsDeferredScrollingEnabled(element, isDeferredScrollingEnabled);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::BringIntoViewOnFocusChangeProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().BringIntoViewOnFocusChangeProperty();
}

inline bool ScrollViewer::GetBringIntoViewOnFocusChange(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().GetBringIntoViewOnFocusChange(element);
}

inline void ScrollViewer::SetBringIntoViewOnFocusChange(Windows::UI::Xaml::DependencyObject const& element, bool bringIntoViewOnFocusChange)
{
    get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics>().SetBringIntoViewOnFocusChange(element, bringIntoViewOnFocusChange);
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::TopLeftHeaderProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics2>().TopLeftHeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::LeftHeaderProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics2>().LeftHeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty ScrollViewer::TopHeaderProperty()
{
    return get_activation_factory<ScrollViewer, Windows::UI::Xaml::Controls::IScrollViewerStatics2>().TopHeaderProperty();
}

inline ScrollViewerViewChangedEventArgs::ScrollViewerViewChangedEventArgs() :
    ScrollViewerViewChangedEventArgs(get_activation_factory<ScrollViewerViewChangedEventArgs>().ActivateInstance<ScrollViewerViewChangedEventArgs>())
{}

inline SearchBox::SearchBox()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::SearchHistoryEnabledProperty()
{
    return get_activation_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>().SearchHistoryEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::SearchHistoryContextProperty()
{
    return get_activation_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>().SearchHistoryContextProperty();
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::PlaceholderTextProperty()
{
    return get_activation_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>().PlaceholderTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::QueryTextProperty()
{
    return get_activation_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>().QueryTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::FocusOnKeyboardInputProperty()
{
    return get_activation_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>().FocusOnKeyboardInputProperty();
}

inline Windows::UI::Xaml::DependencyProperty SearchBox::ChooseSuggestionOnEnterProperty()
{
    return get_activation_factory<SearchBox, Windows::UI::Xaml::Controls::ISearchBoxStatics>().ChooseSuggestionOnEnterProperty();
}

inline SearchBoxResultSuggestionChosenEventArgs::SearchBoxResultSuggestionChosenEventArgs() :
    SearchBoxResultSuggestionChosenEventArgs(get_activation_factory<SearchBoxResultSuggestionChosenEventArgs>().ActivateInstance<SearchBoxResultSuggestionChosenEventArgs>())
{}

inline SelectionChangedEventArgs::SelectionChangedEventArgs(param::vector<Windows::Foundation::IInspectable> const& removedItems, param::vector<Windows::Foundation::IInspectable> const& addedItems)
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SelectionChangedEventArgs, Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>().CreateInstanceWithRemovedItemsAndAddedItems(removedItems, addedItems, outer, inner);
}

inline SemanticZoom::SemanticZoom() :
    SemanticZoom(get_activation_factory<SemanticZoom>().ActivateInstance<SemanticZoom>())
{}

inline Windows::UI::Xaml::DependencyProperty SemanticZoom::ZoomedInViewProperty()
{
    return get_activation_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>().ZoomedInViewProperty();
}

inline Windows::UI::Xaml::DependencyProperty SemanticZoom::ZoomedOutViewProperty()
{
    return get_activation_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>().ZoomedOutViewProperty();
}

inline Windows::UI::Xaml::DependencyProperty SemanticZoom::IsZoomedInViewActiveProperty()
{
    return get_activation_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>().IsZoomedInViewActiveProperty();
}

inline Windows::UI::Xaml::DependencyProperty SemanticZoom::CanChangeViewsProperty()
{
    return get_activation_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>().CanChangeViewsProperty();
}

inline Windows::UI::Xaml::DependencyProperty SemanticZoom::IsZoomOutButtonEnabledProperty()
{
    return get_activation_factory<SemanticZoom, Windows::UI::Xaml::Controls::ISemanticZoomStatics>().IsZoomOutButtonEnabledProperty();
}

inline SemanticZoomLocation::SemanticZoomLocation() :
    SemanticZoomLocation(get_activation_factory<SemanticZoomLocation>().ActivateInstance<SemanticZoomLocation>())
{}

inline SemanticZoomViewChangedEventArgs::SemanticZoomViewChangedEventArgs() :
    SemanticZoomViewChangedEventArgs(get_activation_factory<SemanticZoomViewChangedEventArgs>().ActivateInstance<SemanticZoomViewChangedEventArgs>())
{}

inline SettingsFlyout::SettingsFlyout()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty SettingsFlyout::TitleProperty()
{
    return get_activation_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>().TitleProperty();
}

inline Windows::UI::Xaml::DependencyProperty SettingsFlyout::HeaderBackgroundProperty()
{
    return get_activation_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>().HeaderBackgroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty SettingsFlyout::HeaderForegroundProperty()
{
    return get_activation_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>().HeaderForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty SettingsFlyout::IconSourceProperty()
{
    return get_activation_factory<SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>().IconSourceProperty();
}

inline Slider::Slider()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty Slider::IntermediateValueProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>().IntermediateValueProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::StepFrequencyProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>().StepFrequencyProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::SnapsToProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>().SnapsToProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::TickFrequencyProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>().TickFrequencyProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::TickPlacementProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>().TickPlacementProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::OrientationProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::IsDirectionReversedProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>().IsDirectionReversedProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::IsThumbToolTipEnabledProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>().IsThumbToolTipEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::ThumbToolTipValueConverterProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics>().ThumbToolTipValueConverterProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::HeaderProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics2>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty Slider::HeaderTemplateProperty()
{
    return get_activation_factory<Slider, Windows::UI::Xaml::Controls::ISliderStatics2>().HeaderTemplateProperty();
}

inline SplitView::SplitView()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty SplitView::ContentProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>().ContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty SplitView::PaneProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>().PaneProperty();
}

inline Windows::UI::Xaml::DependencyProperty SplitView::IsPaneOpenProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>().IsPaneOpenProperty();
}

inline Windows::UI::Xaml::DependencyProperty SplitView::OpenPaneLengthProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>().OpenPaneLengthProperty();
}

inline Windows::UI::Xaml::DependencyProperty SplitView::CompactPaneLengthProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>().CompactPaneLengthProperty();
}

inline Windows::UI::Xaml::DependencyProperty SplitView::PanePlacementProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>().PanePlacementProperty();
}

inline Windows::UI::Xaml::DependencyProperty SplitView::DisplayModeProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>().DisplayModeProperty();
}

inline Windows::UI::Xaml::DependencyProperty SplitView::TemplateSettingsProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>().TemplateSettingsProperty();
}

inline Windows::UI::Xaml::DependencyProperty SplitView::PaneBackgroundProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics>().PaneBackgroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty SplitView::LightDismissOverlayModeProperty()
{
    return get_activation_factory<SplitView, Windows::UI::Xaml::Controls::ISplitViewStatics2>().LightDismissOverlayModeProperty();
}

inline StackPanel::StackPanel()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::AreScrollSnapPointsRegularProperty()
{
    return get_activation_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics>().AreScrollSnapPointsRegularProperty();
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::OrientationProperty()
{
    return get_activation_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::BorderBrushProperty()
{
    return get_activation_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>().BorderBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::BorderThicknessProperty()
{
    return get_activation_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>().BorderThicknessProperty();
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::CornerRadiusProperty()
{
    return get_activation_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>().CornerRadiusProperty();
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::PaddingProperty()
{
    return get_activation_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics2>().PaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty StackPanel::SpacingProperty()
{
    return get_activation_factory<StackPanel, Windows::UI::Xaml::Controls::IStackPanelStatics4>().SpacingProperty();
}

inline StyleSelector::StyleSelector()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<StyleSelector, Windows::UI::Xaml::Controls::IStyleSelectorFactory>().CreateInstance(outer, inner);
}

inline SwapChainBackgroundPanel::SwapChainBackgroundPanel()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SwapChainBackgroundPanel, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>().CreateInstance(outer, inner);
}

inline SwapChainPanel::SwapChainPanel()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SwapChainPanel, Windows::UI::Xaml::Controls::ISwapChainPanelFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty SwapChainPanel::CompositionScaleXProperty()
{
    return get_activation_factory<SwapChainPanel, Windows::UI::Xaml::Controls::ISwapChainPanelStatics>().CompositionScaleXProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwapChainPanel::CompositionScaleYProperty()
{
    return get_activation_factory<SwapChainPanel, Windows::UI::Xaml::Controls::ISwapChainPanelStatics>().CompositionScaleYProperty();
}

inline SwipeControl::SwipeControl()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty SwipeControl::LeftItemsProperty()
{
    return get_activation_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>().LeftItemsProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwipeControl::RightItemsProperty()
{
    return get_activation_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>().RightItemsProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwipeControl::TopItemsProperty()
{
    return get_activation_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>().TopItemsProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwipeControl::BottomItemsProperty()
{
    return get_activation_factory<SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlStatics>().BottomItemsProperty();
}

inline SwipeItem::SwipeItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::IconSourceProperty()
{
    return get_activation_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>().IconSourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::TextProperty()
{
    return get_activation_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>().TextProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::BackgroundProperty()
{
    return get_activation_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>().BackgroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::ForegroundProperty()
{
    return get_activation_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>().ForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::CommandProperty()
{
    return get_activation_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>().CommandProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::CommandParameterProperty()
{
    return get_activation_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>().CommandParameterProperty();
}

inline Windows::UI::Xaml::DependencyProperty SwipeItem::BehaviorOnInvokedProperty()
{
    return get_activation_factory<SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemStatics>().BehaviorOnInvokedProperty();
}

inline SwipeItems::SwipeItems()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SwipeItems, Windows::UI::Xaml::Controls::ISwipeItemsFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty SwipeItems::ModeProperty()
{
    return get_activation_factory<SwipeItems, Windows::UI::Xaml::Controls::ISwipeItemsStatics>().ModeProperty();
}

inline SymbolIcon::SymbolIcon() :
    SymbolIcon(get_activation_factory<SymbolIcon>().ActivateInstance<SymbolIcon>())
{}

inline SymbolIcon::SymbolIcon(Windows::UI::Xaml::Controls::Symbol const& symbol) :
    SymbolIcon(get_activation_factory<SymbolIcon, Windows::UI::Xaml::Controls::ISymbolIconFactory>().CreateInstanceWithSymbol(symbol))
{}

inline Windows::UI::Xaml::DependencyProperty SymbolIcon::SymbolProperty()
{
    return get_activation_factory<SymbolIcon, Windows::UI::Xaml::Controls::ISymbolIconStatics>().SymbolProperty();
}

inline SymbolIconSource::SymbolIconSource()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<SymbolIconSource, Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty SymbolIconSource::SymbolProperty()
{
    return get_activation_factory<SymbolIconSource, Windows::UI::Xaml::Controls::ISymbolIconSourceStatics>().SymbolProperty();
}

inline TextBlock::TextBlock() :
    TextBlock(get_activation_factory<TextBlock>().ActivateInstance<TextBlock>())
{}

inline Windows::UI::Xaml::DependencyProperty TextBlock::FontSizeProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().FontSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::FontFamilyProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().FontFamilyProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::FontWeightProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().FontWeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::FontStyleProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().FontStyleProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::FontStretchProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().FontStretchProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::CharacterSpacingProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().CharacterSpacingProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::ForegroundProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().ForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextWrappingProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().TextWrappingProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextTrimmingProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().TextTrimmingProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextAlignmentProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().TextAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().TextProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::PaddingProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().PaddingProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::LineHeightProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().LineHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::LineStackingStrategyProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().LineStackingStrategyProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::IsTextSelectionEnabledProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().IsTextSelectionEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::SelectedTextProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics>().SelectedTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::SelectionHighlightColorProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>().SelectionHighlightColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::MaxLinesProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>().MaxLinesProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextLineBoundsProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>().TextLineBoundsProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::OpticalMarginAlignmentProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>().OpticalMarginAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::IsColorFontEnabledProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>().IsColorFontEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextReadingOrderProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics2>().TextReadingOrderProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::IsTextScaleFactorEnabledProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics3>().IsTextScaleFactorEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::TextDecorationsProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics5>().TextDecorationsProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::IsTextTrimmedProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics6>().IsTextTrimmedProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBlock::HorizontalTextAlignmentProperty()
{
    return get_activation_factory<TextBlock, Windows::UI::Xaml::Controls::ITextBlockStatics6>().HorizontalTextAlignmentProperty();
}

inline TextBox::TextBox()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty TextBox::TextProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>().TextProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::MaxLengthProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>().MaxLengthProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsReadOnlyProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>().IsReadOnlyProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::AcceptsReturnProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>().AcceptsReturnProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::TextAlignmentProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>().TextAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::TextWrappingProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>().TextWrappingProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsSpellCheckEnabledProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>().IsSpellCheckEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsTextPredictionEnabledProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>().IsTextPredictionEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::InputScopeProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics>().InputScopeProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::HeaderProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::HeaderTemplateProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::PlaceholderTextProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>().PlaceholderTextProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::SelectionHighlightColorProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>().SelectionHighlightColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>().PreventKeyboardDisplayOnProgrammaticFocusProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsColorFontEnabledProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics2>().IsColorFontEnabledProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::DesiredCandidateWindowAlignmentProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics3>().DesiredCandidateWindowAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::TextReadingOrderProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics3>().TextReadingOrderProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::SelectionHighlightColorWhenNotFocusedProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics5>().SelectionHighlightColorWhenNotFocusedProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::HorizontalTextAlignmentProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics6>().HorizontalTextAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::CharacterCasingProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics6>().CharacterCasingProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::PlaceholderForegroundProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics6>().PlaceholderForegroundProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::HandwritingViewProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics7>().HandwritingViewProperty();
}

inline Windows::UI::Xaml::DependencyProperty TextBox::IsHandwritingViewEnabledProperty()
{
    return get_activation_factory<TextBox, Windows::UI::Xaml::Controls::ITextBoxStatics7>().IsHandwritingViewEnabledProperty();
}

inline TimePickedEventArgs::TimePickedEventArgs() :
    TimePickedEventArgs(get_activation_factory<TimePickedEventArgs>().ActivateInstance<TimePickedEventArgs>())
{}

inline TimePicker::TimePicker()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::HeaderProperty()
{
    return get_activation_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::HeaderTemplateProperty()
{
    return get_activation_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::ClockIdentifierProperty()
{
    return get_activation_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>().ClockIdentifierProperty();
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::MinuteIncrementProperty()
{
    return get_activation_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>().MinuteIncrementProperty();
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::TimeProperty()
{
    return get_activation_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics>().TimeProperty();
}

inline Windows::UI::Xaml::DependencyProperty TimePicker::LightDismissOverlayModeProperty()
{
    return get_activation_factory<TimePicker, Windows::UI::Xaml::Controls::ITimePickerStatics2>().LightDismissOverlayModeProperty();
}

inline TimePickerFlyout::TimePickerFlyout() :
    TimePickerFlyout(get_activation_factory<TimePickerFlyout>().ActivateInstance<TimePickerFlyout>())
{}

inline Windows::UI::Xaml::DependencyProperty TimePickerFlyout::ClockIdentifierProperty()
{
    return get_activation_factory<TimePickerFlyout, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>().ClockIdentifierProperty();
}

inline Windows::UI::Xaml::DependencyProperty TimePickerFlyout::TimeProperty()
{
    return get_activation_factory<TimePickerFlyout, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>().TimeProperty();
}

inline Windows::UI::Xaml::DependencyProperty TimePickerFlyout::MinuteIncrementProperty()
{
    return get_activation_factory<TimePickerFlyout, Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>().MinuteIncrementProperty();
}

inline ToggleMenuFlyoutItem::ToggleMenuFlyoutItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ToggleMenuFlyoutItem, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ToggleMenuFlyoutItem::IsCheckedProperty()
{
    return get_activation_factory<ToggleMenuFlyoutItem, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics>().IsCheckedProperty();
}

inline ToggleSwitch::ToggleSwitch() :
    ToggleSwitch(get_activation_factory<ToggleSwitch>().ActivateInstance<ToggleSwitch>())
{}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::IsOnProperty()
{
    return get_activation_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>().IsOnProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::HeaderProperty()
{
    return get_activation_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>().HeaderProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::HeaderTemplateProperty()
{
    return get_activation_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>().HeaderTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::OnContentProperty()
{
    return get_activation_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>().OnContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::OnContentTemplateProperty()
{
    return get_activation_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>().OnContentTemplateProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::OffContentProperty()
{
    return get_activation_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>().OffContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToggleSwitch::OffContentTemplateProperty()
{
    return get_activation_factory<ToggleSwitch, Windows::UI::Xaml::Controls::IToggleSwitchStatics>().OffContentTemplateProperty();
}

inline ToolTip::ToolTip()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::HorizontalOffsetProperty()
{
    return get_activation_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>().HorizontalOffsetProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::IsOpenProperty()
{
    return get_activation_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>().IsOpenProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::PlacementProperty()
{
    return get_activation_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>().PlacementProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::PlacementTargetProperty()
{
    return get_activation_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>().PlacementTargetProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToolTip::VerticalOffsetProperty()
{
    return get_activation_factory<ToolTip, Windows::UI::Xaml::Controls::IToolTipStatics>().VerticalOffsetProperty();
}

inline Windows::UI::Xaml::DependencyProperty ToolTipService::PlacementProperty()
{
    return get_activation_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>().PlacementProperty();
}

inline Windows::UI::Xaml::Controls::Primitives::PlacementMode ToolTipService::GetPlacement(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>().GetPlacement(element);
}

inline void ToolTipService::SetPlacement(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::Primitives::PlacementMode const& value)
{
    get_activation_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>().SetPlacement(element, value);
}

inline Windows::UI::Xaml::DependencyProperty ToolTipService::PlacementTargetProperty()
{
    return get_activation_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>().PlacementTargetProperty();
}

inline Windows::UI::Xaml::UIElement ToolTipService::GetPlacementTarget(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>().GetPlacementTarget(element);
}

inline void ToolTipService::SetPlacementTarget(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::UIElement const& value)
{
    get_activation_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>().SetPlacementTarget(element, value);
}

inline Windows::UI::Xaml::DependencyProperty ToolTipService::ToolTipProperty()
{
    return get_activation_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>().ToolTipProperty();
}

inline Windows::Foundation::IInspectable ToolTipService::GetToolTip(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>().GetToolTip(element);
}

inline void ToolTipService::SetToolTip(Windows::UI::Xaml::DependencyObject const& element, Windows::Foundation::IInspectable const& value)
{
    get_activation_factory<ToolTipService, Windows::UI::Xaml::Controls::IToolTipServiceStatics>().SetToolTip(element, value);
}

inline TreeView::TreeView()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty TreeView::SelectionModeProperty()
{
    return get_activation_factory<TreeView, Windows::UI::Xaml::Controls::ITreeViewStatics>().SelectionModeProperty();
}

inline TreeViewItem::TreeViewItem()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::GlyphOpacityProperty()
{
    return get_activation_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>().GlyphOpacityProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::GlyphBrushProperty()
{
    return get_activation_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>().GlyphBrushProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::ExpandedGlyphProperty()
{
    return get_activation_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>().ExpandedGlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::CollapsedGlyphProperty()
{
    return get_activation_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>().CollapsedGlyphProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::GlyphSizeProperty()
{
    return get_activation_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>().GlyphSizeProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::IsExpandedProperty()
{
    return get_activation_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>().IsExpandedProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItem::TreeViewItemTemplateSettingsProperty()
{
    return get_activation_factory<TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemStatics>().TreeViewItemTemplateSettingsProperty();
}

inline TreeViewItemTemplateSettings::TreeViewItemTemplateSettings()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItemTemplateSettings::ExpandedGlyphVisibilityProperty()
{
    return get_activation_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>().ExpandedGlyphVisibilityProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItemTemplateSettings::CollapsedGlyphVisibilityProperty()
{
    return get_activation_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>().CollapsedGlyphVisibilityProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItemTemplateSettings::IndentationProperty()
{
    return get_activation_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>().IndentationProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewItemTemplateSettings::DragItemsCountProperty()
{
    return get_activation_factory<TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>().DragItemsCountProperty();
}

inline TreeViewList::TreeViewList()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<TreeViewList, Windows::UI::Xaml::Controls::ITreeViewListFactory>().CreateInstance(outer, inner);
}

inline TreeViewNode::TreeViewNode()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty TreeViewNode::ContentProperty()
{
    return get_activation_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>().ContentProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewNode::DepthProperty()
{
    return get_activation_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>().DepthProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewNode::IsExpandedProperty()
{
    return get_activation_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>().IsExpandedProperty();
}

inline Windows::UI::Xaml::DependencyProperty TreeViewNode::HasChildrenProperty()
{
    return get_activation_factory<TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeStatics>().HasChildrenProperty();
}

inline UserControl::UserControl()
{
    Windows::Foundation::IInspectable outer, inner;
    *this = get_activation_factory<UserControl, Windows::UI::Xaml::Controls::IUserControlFactory>().CreateInstance(outer, inner);
}

inline Windows::UI::Xaml::DependencyProperty UserControl::ContentProperty()
{
    return get_activation_factory<UserControl, Windows::UI::Xaml::Controls::IUserControlStatics>().ContentProperty();
}

inline VariableSizedWrapGrid::VariableSizedWrapGrid() :
    VariableSizedWrapGrid(get_activation_factory<VariableSizedWrapGrid>().ActivateInstance<VariableSizedWrapGrid>())
{}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::ItemHeightProperty()
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().ItemHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::ItemWidthProperty()
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().ItemWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::OrientationProperty()
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::HorizontalChildrenAlignmentProperty()
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().HorizontalChildrenAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::VerticalChildrenAlignmentProperty()
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().VerticalChildrenAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::MaximumRowsOrColumnsProperty()
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().MaximumRowsOrColumnsProperty();
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::RowSpanProperty()
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().RowSpanProperty();
}

inline int32_t VariableSizedWrapGrid::GetRowSpan(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().GetRowSpan(element);
}

inline void VariableSizedWrapGrid::SetRowSpan(Windows::UI::Xaml::UIElement const& element, int32_t value)
{
    get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().SetRowSpan(element, value);
}

inline Windows::UI::Xaml::DependencyProperty VariableSizedWrapGrid::ColumnSpanProperty()
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().ColumnSpanProperty();
}

inline int32_t VariableSizedWrapGrid::GetColumnSpan(Windows::UI::Xaml::UIElement const& element)
{
    return get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().GetColumnSpan(element);
}

inline void VariableSizedWrapGrid::SetColumnSpan(Windows::UI::Xaml::UIElement const& element, int32_t value)
{
    get_activation_factory<VariableSizedWrapGrid, Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>().SetColumnSpan(element, value);
}

inline Viewbox::Viewbox() :
    Viewbox(get_activation_factory<Viewbox>().ActivateInstance<Viewbox>())
{}

inline Windows::UI::Xaml::DependencyProperty Viewbox::StretchProperty()
{
    return get_activation_factory<Viewbox, Windows::UI::Xaml::Controls::IViewboxStatics>().StretchProperty();
}

inline Windows::UI::Xaml::DependencyProperty Viewbox::StretchDirectionProperty()
{
    return get_activation_factory<Viewbox, Windows::UI::Xaml::Controls::IViewboxStatics>().StretchDirectionProperty();
}

inline VirtualizingStackPanel::VirtualizingStackPanel() :
    VirtualizingStackPanel(get_activation_factory<VirtualizingStackPanel>().ActivateInstance<VirtualizingStackPanel>())
{}

inline Windows::UI::Xaml::DependencyProperty VirtualizingStackPanel::AreScrollSnapPointsRegularProperty()
{
    return get_activation_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>().AreScrollSnapPointsRegularProperty();
}

inline Windows::UI::Xaml::DependencyProperty VirtualizingStackPanel::OrientationProperty()
{
    return get_activation_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty VirtualizingStackPanel::VirtualizationModeProperty()
{
    return get_activation_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>().VirtualizationModeProperty();
}

inline Windows::UI::Xaml::Controls::VirtualizationMode VirtualizingStackPanel::GetVirtualizationMode(Windows::UI::Xaml::DependencyObject const& element)
{
    return get_activation_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>().GetVirtualizationMode(element);
}

inline void VirtualizingStackPanel::SetVirtualizationMode(Windows::UI::Xaml::DependencyObject const& element, Windows::UI::Xaml::Controls::VirtualizationMode const& value)
{
    get_activation_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>().SetVirtualizationMode(element, value);
}

inline Windows::UI::Xaml::DependencyProperty VirtualizingStackPanel::IsVirtualizingProperty()
{
    return get_activation_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>().IsVirtualizingProperty();
}

inline bool VirtualizingStackPanel::GetIsVirtualizing(Windows::UI::Xaml::DependencyObject const& o)
{
    return get_activation_factory<VirtualizingStackPanel, Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>().GetIsVirtualizing(o);
}

inline WebView::WebView() :
    WebView(get_activation_factory<WebView>().ActivateInstance<WebView>())
{}

inline WebView::WebView(Windows::UI::Xaml::Controls::WebViewExecutionMode const& executionMode) :
    WebView(get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewFactory4>().CreateInstanceWithExecutionMode(executionMode))
{}

inline Windows::Foundation::Collections::IVector<Windows::Foundation::Uri> WebView::AnyScriptNotifyUri()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>().AnyScriptNotifyUri();
}

inline Windows::UI::Xaml::DependencyProperty WebView::SourceProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>().SourceProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::AllowedScriptNotifyUrisProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>().AllowedScriptNotifyUrisProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::DataTransferPackageProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics>().DataTransferPackageProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::CanGoBackProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>().CanGoBackProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::CanGoForwardProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>().CanGoForwardProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::DocumentTitleProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>().DocumentTitleProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::DefaultBackgroundColorProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics2>().DefaultBackgroundColorProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::ContainsFullScreenElementProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics3>().ContainsFullScreenElementProperty();
}

inline Windows::UI::Xaml::Controls::WebViewExecutionMode WebView::DefaultExecutionMode()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics4>().DefaultExecutionMode();
}

inline Windows::Foundation::IAsyncAction WebView::ClearTemporaryWebDataAsync()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics4>().ClearTemporaryWebDataAsync();
}

inline Windows::UI::Xaml::DependencyProperty WebView::XYFocusLeftProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>().XYFocusLeftProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::XYFocusRightProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>().XYFocusRightProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::XYFocusUpProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>().XYFocusUpProperty();
}

inline Windows::UI::Xaml::DependencyProperty WebView::XYFocusDownProperty()
{
    return get_activation_factory<WebView, Windows::UI::Xaml::Controls::IWebViewStatics5>().XYFocusDownProperty();
}

inline WebViewBrush::WebViewBrush() :
    WebViewBrush(get_activation_factory<WebViewBrush>().ActivateInstance<WebViewBrush>())
{}

inline Windows::UI::Xaml::DependencyProperty WebViewBrush::SourceNameProperty()
{
    return get_activation_factory<WebViewBrush, Windows::UI::Xaml::Controls::IWebViewBrushStatics>().SourceNameProperty();
}

inline WrapGrid::WrapGrid() :
    WrapGrid(get_activation_factory<WrapGrid>().ActivateInstance<WrapGrid>())
{}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::ItemWidthProperty()
{
    return get_activation_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>().ItemWidthProperty();
}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::ItemHeightProperty()
{
    return get_activation_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>().ItemHeightProperty();
}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::OrientationProperty()
{
    return get_activation_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>().OrientationProperty();
}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::HorizontalChildrenAlignmentProperty()
{
    return get_activation_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>().HorizontalChildrenAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::VerticalChildrenAlignmentProperty()
{
    return get_activation_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>().VerticalChildrenAlignmentProperty();
}

inline Windows::UI::Xaml::DependencyProperty WrapGrid::MaximumRowsOrColumnsProperty()
{
    return get_activation_factory<WrapGrid, Windows::UI::Xaml::Controls::IWrapGridStatics>().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) { handler(args...); })
{}

template <typename O, typename M> BackClickEventHandler::BackClickEventHandler(O* object, M method) :
    BackClickEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(O* object, M method) :
    CalendarViewDayItemChangingEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(O* object, M method) :
    CleanUpVirtualizedItemEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(O* object, M method) :
    ContextMenuOpeningEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> DragItemsStartingEventHandler::DragItemsStartingEventHandler(O* object, M method) :
    DragItemsStartingEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(O* object, M method) :
    HubSectionHeaderClickEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> ItemClickEventHandler::ItemClickEventHandler(O* object, M method) :
    ItemClickEventHandler([=](auto&&... args) { ((*object).*(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...); })
{}

inline hstring ListViewItemToKeyHandler::operator()(Windows::Foundation::IInspectable const& item) const
{
    hstring returnValue{};
    check_hresult((*(impl::abi_t<ListViewItemToKeyHandler>**)this)->Invoke(get_abi(item), put_abi(returnValue)));
    return returnValue;
}

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...); })
{}

inline Windows::Foundation::IAsyncOperation<Windows::Foundation::IInspectable> ListViewKeyToItemHandler::operator()(param::hstring const& key) const
{
    Windows::Foundation::IAsyncOperation<Windows::Foundation::IInspectable> returnValue{ nullptr };
    check_hresult((*(impl::abi_t<ListViewKeyToItemHandler>**)this)->Invoke(get_abi(key), put_abi(returnValue)));
    return returnValue;
}

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) { handler(args...); })
{}

template <typename O, typename M> NotifyEventHandler::NotifyEventHandler(O* object, M method) :
    NotifyEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(O* object, M method) :
    SectionsInViewChangedEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> SelectionChangedEventHandler::SelectionChangedEventHandler(O* object, M method) :
    SelectionChangedEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(O* object, M method) :
    SemanticZoomViewChangedEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> TextChangedEventHandler::TextChangedEventHandler(O* object, M method) :
    TextChangedEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> TextControlPasteEventHandler::TextControlPasteEventHandler(O* object, M method) :
    TextControlPasteEventHandler([=](auto&&... args) { ((*object).*(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) { handler(args...); })
{}

template <typename O, typename M> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(O* object, M method) :
    WebViewNavigationFailedEventHandler([=](auto&&... args) { ((*object).*(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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IAppBar, Windows::UI::Xaml::Controls::IAppBar2, Windows::UI::Xaml::Controls::IAppBar3, Windows::UI::Xaml::Controls::IAppBar4, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = AppBar;

protected:
    AppBarT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::AppBar, Windows::UI::Xaml::Controls::IAppBarFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IAppBarButton, Windows::UI::Xaml::Controls::IAppBarButton3, Windows::UI::Xaml::Controls::IAppBarButton4, Windows::UI::Xaml::Controls::IAppBarButton5, Windows::UI::Xaml::Controls::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::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::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::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>
{
    using composable = AppBarButton;

protected:
    AppBarButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::AppBarButton, Windows::UI::Xaml::Controls::IAppBarButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IAppBarSeparator, Windows::UI::Xaml::Controls::ICommandBarElement, Windows::UI::Xaml::Controls::ICommandBarElement2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = AppBarSeparator;

protected:
    AppBarSeparatorT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::AppBarSeparator, Windows::UI::Xaml::Controls::IAppBarSeparatorFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IAppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButton3, Windows::UI::Xaml::Controls::IAppBarToggleButton4, Windows::UI::Xaml::Controls::IAppBarToggleButton5, Windows::UI::Xaml::Controls::ICommandBarElement, Windows::UI::Xaml::Controls::ICommandBarElement2, Windows::UI::Xaml::Controls::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::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::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::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>
{
    using composable = AppBarToggleButton;

protected:
    AppBarToggleButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::AppBarToggleButton, Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IBitmapIcon, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = BitmapIcon;

protected:
    BitmapIconT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::BitmapIcon, Windows::UI::Xaml::Controls::IBitmapIconFactory>().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>
{
    using composable = BitmapIconSource;

protected:
    BitmapIconSourceT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::BitmapIconSource, Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>().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, composing, Interfaces...>,
    impl::require<D, 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::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::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::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>
{
    using composable = Button;

protected:
    ButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Button, Windows::UI::Xaml::Controls::IButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ICalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePicker2, 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::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::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::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>
{
    using composable = CalendarDatePicker;

protected:
    CalendarDatePickerT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::CalendarDatePicker, Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ICalendarView, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = CalendarView;

protected:
    CalendarViewT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::CalendarView, Windows::UI::Xaml::Controls::ICalendarViewFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ICalendarViewDayItem, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = CalendarViewDayItem;

protected:
    CalendarViewDayItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::CalendarViewDayItem, Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ICanvas, Windows::UI::Xaml::Controls::IPanel, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = Canvas;

protected:
    CanvasT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Canvas, Windows::UI::Xaml::Controls::ICanvasFactory>().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, composing, Interfaces...>,
    impl::require<D, 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::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::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::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>
{
    using composable = CheckBox;

protected:
    CheckBoxT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::CheckBox, Windows::UI::Xaml::Controls::ICheckBoxFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IColorPicker, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = ColorPicker;

protected:
    ColorPickerT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ColorPicker, Windows::UI::Xaml::Controls::IColorPickerFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IComboBox, Windows::UI::Xaml::Controls::IComboBox2, Windows::UI::Xaml::Controls::IComboBox3, Windows::UI::Xaml::Controls::IComboBox4, Windows::UI::Xaml::Controls::IComboBox5, Windows::UI::Xaml::Controls::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::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::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::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>
{
    using composable = ComboBox;

protected:
    ComboBoxT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ComboBox, Windows::UI::Xaml::Controls::IComboBoxFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IComboBoxItem, 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::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::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::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>
{
    using composable = ComboBoxItem;

protected:
    ComboBoxItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ComboBoxItem, Windows::UI::Xaml::Controls::IComboBoxItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ICommandBar, 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::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::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::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>
{
    using composable = CommandBar;

protected:
    CommandBarT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::CommandBar, Windows::UI::Xaml::Controls::ICommandBarFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter, 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::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::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::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>
{
    using composable = CommandBarOverflowPresenter;

protected:
    CommandBarOverflowPresenterT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::CommandBarOverflowPresenter, Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = ContentControl;

protected:
    ContentControlT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ContentControl, Windows::UI::Xaml::Controls::IContentControlFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IContentDialog, 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::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::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::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>
{
    using composable = ContentDialog;

protected:
    ContentDialogT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ContentDialog, Windows::UI::Xaml::Controls::IContentDialogFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IContentPresenter, Windows::UI::Xaml::Controls::IContentPresenter2, Windows::UI::Xaml::Controls::IContentPresenter3, Windows::UI::Xaml::Controls::IContentPresenter4, Windows::UI::Xaml::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::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::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>
{
    using composable = ContentPresenter;

protected:
    ContentPresenterT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ContentPresenter, Windows::UI::Xaml::Controls::IContentPresenterFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = Control;

protected:
    ControlT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Control, Windows::UI::Xaml::Controls::IControlFactory>().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::Controls::IDataTemplateSelectorOverridesT<D>, Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2T<D>
{
    using composable = DataTemplateSelector;

protected:
    DataTemplateSelectorT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::DataTemplateSelector, Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IDatePicker, 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::IControlProtected, Windows::UI::Xaml::Controls::IDatePicker2, 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::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::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>
{
    using composable = DatePicker;

protected:
    DatePickerT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::DatePicker, Windows::UI::Xaml::Controls::IDatePickerFactory>().CreateInstance(*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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IFlipView, 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::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::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::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>
{
    using composable = FlipView;

protected:
    FlipViewT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::FlipView, Windows::UI::Xaml::Controls::IFlipViewFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IFlipViewItem, 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::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::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::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>
{
    using composable = FlipViewItem;

protected:
    FlipViewItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::FlipViewItem, Windows::UI::Xaml::Controls::IFlipViewItemFactory>().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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
{
    using composable = Flyout;

protected:
    FlyoutT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Flyout, Windows::UI::Xaml::Controls::IFlyoutFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IFlyoutPresenter, 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::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::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::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>
{
    using composable = FlyoutPresenter;

protected:
    FlyoutPresenterT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::FlyoutPresenter, Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IFontIcon, Windows::UI::Xaml::Controls::IFontIcon2, Windows::UI::Xaml::Controls::IFontIcon3, Windows::UI::Xaml::Controls::IIconElement, Windows::UI::Xaml::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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = FontIcon;

protected:
    FontIconT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::FontIcon, Windows::UI::Xaml::Controls::IFontIconFactory>().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>
{
    using composable = FontIconSource;

protected:
    FontIconSourceT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::FontIconSource, Windows::UI::Xaml::Controls::IFontIconSourceFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IFrame, 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::IControlProtected, Windows::UI::Xaml::Controls::IFrame2, Windows::UI::Xaml::Controls::IFrame3, Windows::UI::Xaml::Controls::IFrame4, 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::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::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>
{
    using composable = Frame;

protected:
    FrameT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Frame, Windows::UI::Xaml::Controls::IFrameFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IGrid, Windows::UI::Xaml::Controls::IGrid2, Windows::UI::Xaml::Controls::IGrid3, Windows::UI::Xaml::Controls::IPanel, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = Grid;

protected:
    GridT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Grid, Windows::UI::Xaml::Controls::IGridFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IGridView, 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::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::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::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>
{
    using composable = GridView;

protected:
    GridViewT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::GridView, Windows::UI::Xaml::Controls::IGridViewFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IGridViewHeaderItem, 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::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::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::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>
{
    using composable = GridViewHeaderItem;

protected:
    GridViewHeaderItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::GridViewHeaderItem, Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IGridViewItem, 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::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::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::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>
{
    using composable = GridViewItem;

protected:
    GridViewItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::GridViewItem, Windows::UI::Xaml::Controls::IGridViewItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IGroupItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = GroupItem;

protected:
    GroupItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::GroupItem, Windows::UI::Xaml::Controls::IGroupItemFactory>().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>
{
    using composable = GroupStyle;

protected:
    GroupStyleT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::GroupStyle, Windows::UI::Xaml::Controls::IGroupStyleFactory>().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>,
    Windows::UI::Xaml::Controls::IGroupStyleSelectorOverridesT<D>
{
    using composable = GroupStyleSelector;

protected:
    GroupStyleSelectorT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::GroupStyleSelector, Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IHandwritingView, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = HandwritingView;

protected:
    HandwritingViewT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::HandwritingView, Windows::UI::Xaml::Controls::IHandwritingViewFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IHub, 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::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::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::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>
{
    using composable = Hub;

protected:
    HubT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Hub, Windows::UI::Xaml::Controls::IHubFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IHubSection, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = HubSection;

protected:
    HubSectionT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::HubSection, Windows::UI::Xaml::Controls::IHubSectionFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IHyperlinkButton, 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::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::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::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>
{
    using composable = HyperlinkButton;

protected:
    HyperlinkButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::HyperlinkButton, Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkCanvas, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = InkCanvas;

protected:
    InkCanvasT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkCanvas, Windows::UI::Xaml::Controls::IInkCanvasFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbar, 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::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::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::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>
{
    using composable = InkToolbar;

protected:
    InkToolbarT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbar, Windows::UI::Xaml::Controls::IInkToolbarFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton, 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::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::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::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>
{
    using composable = InkToolbarBallpointPenButton;

protected:
    InkToolbarBallpointPenButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton, Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory>().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>,
    Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverridesT<D>
{
    using composable = InkToolbarCustomPen;

protected:
    InkToolbarCustomPenT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarCustomPen, Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton, 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::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::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::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>
{
    using composable = InkToolbarCustomPenButton;

protected:
    InkToolbarCustomPenButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarCustomPenButton, Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton, 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::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::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::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>
{
    using composable = InkToolbarCustomToggleButton;

protected:
    InkToolbarCustomToggleButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton, 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::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::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::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>
{
    using composable = InkToolbarCustomToolButton;

protected:
    InkToolbarCustomToolButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarCustomToolButton, Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarEraserButton, 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::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::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::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>
{
    using composable = InkToolbarEraserButton;

protected:
    InkToolbarEraserButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarEraserButton, Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, 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::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::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::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>
{
    using composable = InkToolbarFlyoutItem;

protected:
    InkToolbarFlyoutItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton, 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::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::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::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>
{
    using composable = InkToolbarHighlighterButton;

protected:
    InkToolbarHighlighterButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarHighlighterButton, Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = InkToolbarPenConfigurationControl;

protected:
    InkToolbarPenConfigurationControlT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl, Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarPencilButton, 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::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::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::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>
{
    using composable = InkToolbarPencilButton;

protected:
    InkToolbarPencilButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarPencilButton, Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarRulerButton, 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::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::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::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>
{
    using composable = InkToolbarRulerButton;

protected:
    InkToolbarRulerButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarRulerButton, Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IInkToolbarStencilButton, 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::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::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::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>
{
    using composable = InkToolbarStencilButton;

protected:
    InkToolbarStencilButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::InkToolbarStencilButton, Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IItemsControl, 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::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::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::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>
{
    using composable = ItemsControl;

protected:
    ItemsControlT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ItemsControl, Windows::UI::Xaml::Controls::IItemsControlFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IListBox, 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::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::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::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>
{
    using composable = ListBox;

protected:
    ListBoxT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ListBox, Windows::UI::Xaml::Controls::IListBoxFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IListBoxItem, 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::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::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::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>
{
    using composable = ListBoxItem;

protected:
    ListBoxItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ListBoxItem, Windows::UI::Xaml::Controls::IListBoxItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IListView, 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::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::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::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>
{
    using composable = ListView;

protected:
    ListViewT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ListView, Windows::UI::Xaml::Controls::IListViewFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IListViewBase, 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::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::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::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>
{
    using composable = ListViewBase;

protected:
    ListViewBaseT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ListViewBase, Windows::UI::Xaml::Controls::IListViewBaseFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IListViewHeaderItem, 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::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::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::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>
{
    using composable = ListViewHeaderItem;

protected:
    ListViewHeaderItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ListViewHeaderItem, Windows::UI::Xaml::Controls::IListViewHeaderItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IListViewItem, 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::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::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::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>
{
    using composable = ListViewItem;

protected:
    ListViewItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ListViewItem, Windows::UI::Xaml::Controls::IListViewItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IMediaPlayerElement, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = MediaPlayerElement;

protected:
    MediaPlayerElementT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::MediaPlayerElement, Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IMediaPlayerPresenter, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = MediaPlayerPresenter;

protected:
    MediaPlayerPresenterT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::MediaPlayerPresenter, Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IMediaTransportControls, 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::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::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::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>
{
    using composable = MediaTransportControls;

protected:
    MediaTransportControlsT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::MediaTransportControls, Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>().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::IDependencyObject, Windows::UI::Xaml::IDependencyObject2>,
    Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
{
    using composable = MenuFlyout;

protected:
    MenuFlyoutT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::MenuFlyout, Windows::UI::Xaml::Controls::IMenuFlyoutFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IMenuFlyoutItem, 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::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::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::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>
{
    using composable = MenuFlyoutItem;

protected:
    MenuFlyoutItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::MenuFlyoutItem, Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IMenuFlyoutPresenter, 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::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::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::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>
{
    using composable = MenuFlyoutPresenter;

protected:
    MenuFlyoutPresenterT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::MenuFlyoutPresenter, Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IMenuFlyoutSeparator, 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::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::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::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>
{
    using composable = MenuFlyoutSeparator;

protected:
    MenuFlyoutSeparatorT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::MenuFlyoutSeparator, Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::INavigationView, 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::IControlProtected, Windows::UI::Xaml::Controls::INavigationView2, 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::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::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>
{
    using composable = NavigationView;

protected:
    NavigationViewT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::NavigationView, Windows::UI::Xaml::Controls::INavigationViewFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::INavigationViewItem, 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::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::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::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>
{
    using composable = NavigationViewItem;

protected:
    NavigationViewItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::NavigationViewItem, Windows::UI::Xaml::Controls::INavigationViewItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::INavigationViewItemHeader, 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::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::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::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>
{
    using composable = NavigationViewItemHeader;

protected:
    NavigationViewItemHeaderT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::NavigationViewItemHeader, Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::INavigationViewItemSeparator, 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::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::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::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>
{
    using composable = NavigationViewItemSeparator;

protected:
    NavigationViewItemSeparatorT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::NavigationViewItemSeparator, Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::INavigationViewList, 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::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::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::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>
{
    using composable = NavigationViewList;

protected:
    NavigationViewListT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::NavigationViewList, Windows::UI::Xaml::Controls::INavigationViewListFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IPage, 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::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::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::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>
{
    using composable = Page;

protected:
    PageT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Page, Windows::UI::Xaml::Controls::IPageFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IPanel, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = Panel;

protected:
    PanelT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Panel, Windows::UI::Xaml::Controls::IPanelFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IParallaxView, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = ParallaxView;

protected:
    ParallaxViewT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ParallaxView, Windows::UI::Xaml::Controls::IParallaxViewFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IPathIcon, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = PathIcon;

protected:
    PathIconT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::PathIcon, Windows::UI::Xaml::Controls::IPathIconFactory>().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>
{
    using composable = PathIconSource;

protected:
    PathIconSourceT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::PathIconSource, Windows::UI::Xaml::Controls::IPathIconSourceFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IPersonPicture, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = PersonPicture;

protected:
    PersonPictureT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::PersonPicture, Windows::UI::Xaml::Controls::IPersonPictureFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IPivot, 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::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::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::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>
{
    using composable = Pivot;

protected:
    PivotT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Pivot, Windows::UI::Xaml::Controls::IPivotFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IPivotItem, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = PivotItem;

protected:
    PivotItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::PivotItem, Windows::UI::Xaml::Controls::IPivotItemFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IProgressBar, 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::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::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::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>
{
    using composable = ProgressBar;

protected:
    ProgressBarT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ProgressBar, Windows::UI::Xaml::Controls::IProgressBarFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IRadioButton, 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::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::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::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>
{
    using composable = RadioButton;

protected:
    RadioButtonT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::RadioButton, Windows::UI::Xaml::Controls::IRadioButtonFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IRatingControl, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = RatingControl;

protected:
    RatingControlT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::RatingControl, Windows::UI::Xaml::Controls::IRatingControlFactory>().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>
{
    using composable = RatingItemFontInfo;

protected:
    RatingItemFontInfoT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::RatingItemFontInfo, Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>().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>
{
    using composable = RatingItemImageInfo;

protected:
    RatingItemImageInfoT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::RatingItemImageInfo, Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>().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>
{
    using composable = RatingItemInfo;

protected:
    RatingItemInfoT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::RatingItemInfo, Windows::UI::Xaml::Controls::IRatingItemInfoFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IRefreshContainer, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = RefreshContainer;

protected:
    RefreshContainerT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::RefreshContainer, Windows::UI::Xaml::Controls::IRefreshContainerFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IRefreshVisualizer, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = RefreshVisualizer;

protected:
    RefreshVisualizerT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::RefreshVisualizer, Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IRelativePanel, Windows::UI::Xaml::Controls::IPanel, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = RelativePanel;

protected:
    RelativePanelT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::RelativePanel, Windows::UI::Xaml::Controls::IRelativePanelFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IRichEditBox, 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::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::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::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::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>
{
    using composable = RichEditBox;

protected:
    RichEditBoxT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::RichEditBox, Windows::UI::Xaml::Controls::IRichEditBoxFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ISearchBox, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = SearchBox;

protected:
    SearchBoxT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SearchBox, Windows::UI::Xaml::Controls::ISearchBoxFactory>().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>
{
    using composable = SelectionChangedEventArgs;

protected:
    SelectionChangedEventArgsT(param::vector<Windows::Foundation::IInspectable> const& removedItems, param::vector<Windows::Foundation::IInspectable> const& addedItems)
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SelectionChangedEventArgs, Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ISettingsFlyout, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = SettingsFlyout;

protected:
    SettingsFlyoutT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SettingsFlyout, Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ISlider, 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::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::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::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>
{
    using composable = Slider;

protected:
    SliderT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::Slider, Windows::UI::Xaml::Controls::ISliderFactory>().CreateInstance(*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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ISplitView, 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::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::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::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>
{
    using composable = SplitView;

protected:
    SplitViewT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SplitView, Windows::UI::Xaml::Controls::ISplitViewFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IStackPanel, Windows::UI::Xaml::Controls::IInsertionPanel, Windows::UI::Xaml::Controls::IPanel, Windows::UI::Xaml::Controls::IStackPanel2, Windows::UI::Xaml::Controls::IStackPanel4, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = StackPanel;

protected:
    StackPanelT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::StackPanel, Windows::UI::Xaml::Controls::IStackPanelFactory>().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>,
    Windows::UI::Xaml::Controls::IStyleSelectorOverridesT<D>
{
    using composable = StyleSelector;

protected:
    StyleSelectorT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::StyleSelector, Windows::UI::Xaml::Controls::IStyleSelectorFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel, Windows::UI::Xaml::Controls::IGrid, Windows::UI::Xaml::Controls::IGrid2, Windows::UI::Xaml::Controls::IGrid3, Windows::UI::Xaml::Controls::IPanel, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = SwapChainBackgroundPanel;

protected:
    SwapChainBackgroundPanelT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SwapChainBackgroundPanel, Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ISwapChainPanel, Windows::UI::Xaml::Controls::IGrid, Windows::UI::Xaml::Controls::IGrid2, Windows::UI::Xaml::Controls::IGrid3, Windows::UI::Xaml::Controls::IPanel, 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::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::IFrameworkElementOverridesT<D>, Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, Windows::UI::Xaml::IUIElementOverridesT<D>, Windows::UI::Xaml::IUIElementOverrides7T<D>, Windows::UI::Xaml::IUIElementOverrides8T<D>
{
    using composable = SwapChainPanel;

protected:
    SwapChainPanelT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SwapChainPanel, Windows::UI::Xaml::Controls::ISwapChainPanelFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ISwipeControl, Windows::UI::Xaml::Controls::IContentControl, Windows::UI::Xaml::Controls::IContentControl2, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = SwipeControl;

protected:
    SwipeControlT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SwipeControl, Windows::UI::Xaml::Controls::ISwipeControlFactory>().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>
{
    using composable = SwipeItem;

protected:
    SwipeItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SwipeItem, Windows::UI::Xaml::Controls::ISwipeItemFactory>().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>
{
    using composable = SwipeItems;

protected:
    SwipeItemsT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SwipeItems, Windows::UI::Xaml::Controls::ISwipeItemsFactory>().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>
{
    using composable = SymbolIconSource;

protected:
    SymbolIconSourceT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::SymbolIconSource, Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ITextBox, 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::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::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::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::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>
{
    using composable = TextBox;

protected:
    TextBoxT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::TextBox, Windows::UI::Xaml::Controls::ITextBoxFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ITimePicker, 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::IControlProtected, Windows::UI::Xaml::Controls::ITimePicker2, 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::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::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>
{
    using composable = TimePicker;

protected:
    TimePickerT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::TimePicker, Windows::UI::Xaml::Controls::ITimePickerFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem, 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::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::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::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>
{
    using composable = ToggleMenuFlyoutItem;

protected:
    ToggleMenuFlyoutItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem, Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>().CreateInstance(*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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IToolTip, 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::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::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::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>
{
    using composable = ToolTip;

protected:
    ToolTipT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::ToolTip, Windows::UI::Xaml::Controls::IToolTipFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ITreeView, 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::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::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::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>
{
    using composable = TreeView;

protected:
    TreeViewT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::TreeView, Windows::UI::Xaml::Controls::ITreeViewFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ITreeViewItem, 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::IControlProtected, Windows::UI::Xaml::Controls::IListViewItem, 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::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::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>
{
    using composable = TreeViewItem;

protected:
    TreeViewItemT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::TreeViewItem, Windows::UI::Xaml::Controls::ITreeViewItemFactory>().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>
{
    using composable = TreeViewItemTemplateSettings;

protected:
    TreeViewItemTemplateSettingsT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings, Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::ITreeViewList, 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::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::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::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>
{
    using composable = TreeViewList;

protected:
    TreeViewListT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::TreeViewList, Windows::UI::Xaml::Controls::ITreeViewListFactory>().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>
{
    using composable = TreeViewNode;

protected:
    TreeViewNodeT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::TreeViewNode, Windows::UI::Xaml::Controls::ITreeViewNodeFactory>().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, composing, Interfaces...>,
    impl::require<D, Windows::UI::Xaml::Controls::IUserControl, Windows::UI::Xaml::Controls::IControl, Windows::UI::Xaml::Controls::IControl2, Windows::UI::Xaml::Controls::IControl3, Windows::UI::Xaml::Controls::IControl4, Windows::UI::Xaml::Controls::IControl5, Windows::UI::Xaml::Controls::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::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::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>
{
    using composable = UserControl;

protected:
    UserControlT()
    {
        get_activation_factory<Windows::UI::Xaml::Controls::UserControl, Windows::UI::Xaml::Controls::IUserControlFactory>().CreateInstance(*this, this->m_inner);
    }
};

}

WINRT_EXPORT namespace std {

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::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::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::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::IBorderStatics> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IBorderStatics> {};
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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::IRichEditBoxFactory> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory> {};
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::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::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::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::IScrollContentPresenter> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter> {};
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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::ITreeView> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeView> {};
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::ITreeViewExpandingEventArgs> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs> {};
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::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::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::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::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::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::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::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::CommandBar> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::CommandBar> {};
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::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::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::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::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::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::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::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::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::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::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::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::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::WrapGrid> : winrt::impl::hash_base<winrt::Windows::UI::Xaml::Controls::WrapGrid> {};

}

WINRT_WARNING_POP
