// WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.1

#pragma once

#include "pybase.h"
static_assert(winrt::check_version(PYWINRT_VERSION, "3.2.1"), "Mismatched Py/WinRT headers.");
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Foundation.Numerics.h>
#include <winrt/Windows.UI.h>
#include <winrt/Windows.UI.Xaml.h>
#include <winrt/Windows.UI.Xaml.Controls.h>
#include <winrt/Windows.UI.Xaml.Input.h>
#include <winrt/Windows.UI.Xaml.Interop.h>
#include <winrt/Windows.UI.Xaml.Media.h>
#include <winrt/Windows.UI.Xaml.Media.Animation.h>

#include <winrt/Windows.UI.Xaml.Controls.Primitives.h>

namespace py::proj::Windows::UI::Xaml::Controls::Primitives
{
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::AnimationDirection> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::ComponentResourceLocation> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::EdgeTransitionLocation> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutPlacementMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutShowMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorDirection> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemPresenterCheckMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemPresenterSelectionIndicatorMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::PopupPlacementMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::ScrollEventType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::ScrollingIndicatorMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::TickPlacement> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition> = "T{i:index:i:offset:}";


    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::AnimationDirection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.AnimationDirection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "AnimationDirection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ComponentResourceLocation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ComponentResourceLocation";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ComponentResourceLocation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::EdgeTransitionLocation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.EdgeTransitionLocation";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "EdgeTransitionLocation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutPlacementMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.FlyoutPlacementMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "FlyoutPlacementMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutShowMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.FlyoutShowMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "FlyoutShowMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorDirection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.GeneratorDirection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "GeneratorDirection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.GroupHeaderPlacement";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "GroupHeaderPlacement";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemPresenterCheckMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ListViewItemPresenterCheckMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ListViewItemPresenterCheckMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemPresenterSelectionIndicatorMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ListViewItemPresenterSelectionIndicatorMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ListViewItemPresenterSelectionIndicatorMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.PlacementMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "PlacementMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::PopupPlacementMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.PopupPlacementMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "PopupPlacementMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ScrollEventType>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ScrollEventType";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ScrollEventType";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ScrollingIndicatorMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ScrollingIndicatorMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ScrollingIndicatorMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.SliderSnapsTo";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "SliderSnapsTo";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.SnapPointsAlignment";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "SnapPointsAlignment";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::TickPlacement>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.TickPlacement";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "TickPlacement";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.AppBarButtonTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "AppBarButtonTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.AppBarTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "AppBarTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.AppBarToggleButtonTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "AppBarToggleButtonTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ButtonBase";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ButtonBase";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::CalendarPanel>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.CalendarPanel";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "CalendarPanel";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.CalendarViewTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "CalendarViewTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::CarouselPanel>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.CarouselPanel";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "CarouselPanel";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ColorPickerSlider>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ColorPickerSlider";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ColorPickerSlider";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ColorSpectrum>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ColorSpectrum";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ColorSpectrum";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ComboBoxTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ComboBoxTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::CommandBarFlyoutCommandBar>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.CommandBarFlyoutCommandBar";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "CommandBarFlyoutCommandBar";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::CommandBarFlyoutCommandBarTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.CommandBarFlyoutCommandBarTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "CommandBarFlyoutCommandBarTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.CommandBarTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "CommandBarTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::DragCompletedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.DragCompletedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "DragCompletedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::DragDeltaEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.DragDeltaEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "DragDeltaEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::DragStartedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.DragStartedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "DragStartedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.FlyoutBase";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "FlyoutBase";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBaseClosingEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.FlyoutBaseClosingEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "FlyoutBaseClosingEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutShowOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.FlyoutShowOptions";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "FlyoutShowOptions";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPositionHelper>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.GeneratorPositionHelper";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "GeneratorPositionHelper";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::GridViewItemPresenter>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.GridViewItemPresenter";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "GridViewItemPresenter";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.GridViewItemTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "GridViewItemTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ItemsChangedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ItemsChangedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::JumpListItemBackgroundConverter>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.JumpListItemBackgroundConverter";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "JumpListItemBackgroundConverter";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::JumpListItemForegroundConverter>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.JumpListItemForegroundConverter";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "JumpListItemForegroundConverter";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::LayoutInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.LayoutInformation";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "LayoutInformation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemPresenter>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ListViewItemPresenter";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ListViewItemPresenter";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ListViewItemTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ListViewItemTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::LoopingSelector>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.LoopingSelector";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "LoopingSelector";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::LoopingSelectorItem>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.LoopingSelectorItem";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "LoopingSelectorItem";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::LoopingSelectorPanel>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.LoopingSelectorPanel";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "LoopingSelectorPanel";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.MenuFlyoutItemTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "MenuFlyoutItemTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.MenuFlyoutPresenterTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "MenuFlyoutPresenterTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::NavigationViewItemPresenter>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.NavigationViewItemPresenter";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "NavigationViewItemPresenter";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::OrientedVirtualizingPanel>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.OrientedVirtualizingPanel";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "OrientedVirtualizingPanel";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::PickerFlyoutBase>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.PickerFlyoutBase";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "PickerFlyoutBase";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::PivotHeaderItem>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.PivotHeaderItem";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "PivotHeaderItem";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::PivotHeaderPanel>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.PivotHeaderPanel";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "PivotHeaderPanel";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::PivotPanel>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.PivotPanel";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "PivotPanel";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::Popup>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.Popup";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "Popup";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ProgressBarTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ProgressBarTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ProgressRingTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ProgressRingTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::RangeBase>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.RangeBase";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "RangeBase";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.RangeBaseValueChangedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "RangeBaseValueChangedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::RepeatButton>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.RepeatButton";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "RepeatButton";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ScrollBar>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ScrollBar";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ScrollBar";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ScrollEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ScrollEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ScrollEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::Selector>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.Selector";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "Selector";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.SelectorItem";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "SelectorItem";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.SettingsFlyoutTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "SettingsFlyoutTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.SplitViewTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "SplitViewTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::Thumb>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.Thumb";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "Thumb";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::TickBar>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.TickBar";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "TickBar";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ToggleButton";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ToggleButton";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ToggleSwitchTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ToggleSwitchTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.ToolTipTemplateSettings";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "ToolTipTemplateSettings";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::IScrollSnapPointsInfo>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives._IScrollSnapPointsInfo";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "_IScrollSnapPointsInfo";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_ui_xaml_controls_primitives.GeneratorPosition_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.controls.primitives.GeneratorPosition";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.controls.primitives";
        static constexpr const char* type_name = "GeneratorPosition";
    };
}

#if __has_include("py.Windows.Foundation.h")
#include "py.Windows.Foundation.h"
#endif

#if __has_include("py.Windows.Foundation.Collections.h")
#include "py.Windows.Foundation.Collections.h"
#endif

#if __has_include("py.Windows.Foundation.Numerics.h")
#include "py.Windows.Foundation.Numerics.h"
#endif

#if __has_include("py.Windows.UI.h")
#include "py.Windows.UI.h"
#endif

#if __has_include("py.Windows.UI.Xaml.h")
#include "py.Windows.UI.Xaml.h"
#endif

#if __has_include("py.Windows.UI.Xaml.Controls.h")
#include "py.Windows.UI.Xaml.Controls.h"
#endif

#if __has_include("py.Windows.UI.Xaml.Input.h")
#include "py.Windows.UI.Xaml.Input.h"
#endif

#if __has_include("py.Windows.UI.Xaml.Interop.h")
#include "py.Windows.UI.Xaml.Interop.h"
#endif

#if __has_include("py.Windows.UI.Xaml.Media.h")
#include "py.Windows.UI.Xaml.Media.h"
#endif

#if __has_include("py.Windows.UI.Xaml.Media.Animation.h")
#include "py.Windows.UI.Xaml.Media.Animation.h"
#endif

namespace py::impl::Windows::UI::Xaml::Controls::Primitives
{
    struct DragCompletedEventHandler
    {
        static winrt::Windows::UI::Xaml::Controls::Primitives::DragCompletedEventHandler get(PyObject* callable)
        {
            py::delegate_callable _delegate{ callable };

            return [delegate = std::move(_delegate)](winrt::Windows::Foundation::IInspectable const& param0, winrt::Windows::UI::Xaml::Controls::Primitives::DragCompletedEventArgs const& param1)
            {
                auto gil = py::ensure_gil();

                try
                {
                    py::pyobj_handle py_param0{py::convert(param0)};
                    if (!py_param0)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle py_param1{py::convert(param1)};
                    if (!py_param1)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle args{PyTuple_Pack(2, py_param0.get(), py_param1.get())};
                    if (!args)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle return_value{PyObject_CallObject(delegate.callable(), args.get())};
                    if (!return_value)
                    {
                        throw python_exception();
                    }
                }
                catch (python_exception)
                {
                    py::write_unraisable_and_throw();
                }
            };
        };
    };

    struct DragDeltaEventHandler
    {
        static winrt::Windows::UI::Xaml::Controls::Primitives::DragDeltaEventHandler get(PyObject* callable)
        {
            py::delegate_callable _delegate{ callable };

            return [delegate = std::move(_delegate)](winrt::Windows::Foundation::IInspectable const& param0, winrt::Windows::UI::Xaml::Controls::Primitives::DragDeltaEventArgs const& param1)
            {
                auto gil = py::ensure_gil();

                try
                {
                    py::pyobj_handle py_param0{py::convert(param0)};
                    if (!py_param0)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle py_param1{py::convert(param1)};
                    if (!py_param1)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle args{PyTuple_Pack(2, py_param0.get(), py_param1.get())};
                    if (!args)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle return_value{PyObject_CallObject(delegate.callable(), args.get())};
                    if (!return_value)
                    {
                        throw python_exception();
                    }
                }
                catch (python_exception)
                {
                    py::write_unraisable_and_throw();
                }
            };
        };
    };

    struct DragStartedEventHandler
    {
        static winrt::Windows::UI::Xaml::Controls::Primitives::DragStartedEventHandler get(PyObject* callable)
        {
            py::delegate_callable _delegate{ callable };

            return [delegate = std::move(_delegate)](winrt::Windows::Foundation::IInspectable const& param0, winrt::Windows::UI::Xaml::Controls::Primitives::DragStartedEventArgs const& param1)
            {
                auto gil = py::ensure_gil();

                try
                {
                    py::pyobj_handle py_param0{py::convert(param0)};
                    if (!py_param0)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle py_param1{py::convert(param1)};
                    if (!py_param1)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle args{PyTuple_Pack(2, py_param0.get(), py_param1.get())};
                    if (!args)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle return_value{PyObject_CallObject(delegate.callable(), args.get())};
                    if (!return_value)
                    {
                        throw python_exception();
                    }
                }
                catch (python_exception)
                {
                    py::write_unraisable_and_throw();
                }
            };
        };
    };

    struct ItemsChangedEventHandler
    {
        static winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler get(PyObject* callable)
        {
            py::delegate_callable _delegate{ callable };

            return [delegate = std::move(_delegate)](winrt::Windows::Foundation::IInspectable const& param0, winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const& param1)
            {
                auto gil = py::ensure_gil();

                try
                {
                    py::pyobj_handle py_param0{py::convert(param0)};
                    if (!py_param0)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle py_param1{py::convert(param1)};
                    if (!py_param1)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle args{PyTuple_Pack(2, py_param0.get(), py_param1.get())};
                    if (!args)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle return_value{PyObject_CallObject(delegate.callable(), args.get())};
                    if (!return_value)
                    {
                        throw python_exception();
                    }
                }
                catch (python_exception)
                {
                    py::write_unraisable_and_throw();
                }
            };
        };
    };

    struct RangeBaseValueChangedEventHandler
    {
        static winrt::Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventHandler get(PyObject* callable)
        {
            py::delegate_callable _delegate{ callable };

            return [delegate = std::move(_delegate)](winrt::Windows::Foundation::IInspectable const& param0, winrt::Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs const& param1)
            {
                auto gil = py::ensure_gil();

                try
                {
                    py::pyobj_handle py_param0{py::convert(param0)};
                    if (!py_param0)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle py_param1{py::convert(param1)};
                    if (!py_param1)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle args{PyTuple_Pack(2, py_param0.get(), py_param1.get())};
                    if (!args)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle return_value{PyObject_CallObject(delegate.callable(), args.get())};
                    if (!return_value)
                    {
                        throw python_exception();
                    }
                }
                catch (python_exception)
                {
                    py::write_unraisable_and_throw();
                }
            };
        };
    };

    struct ScrollEventHandler
    {
        static winrt::Windows::UI::Xaml::Controls::Primitives::ScrollEventHandler get(PyObject* callable)
        {
            py::delegate_callable _delegate{ callable };

            return [delegate = std::move(_delegate)](winrt::Windows::Foundation::IInspectable const& param0, winrt::Windows::UI::Xaml::Controls::Primitives::ScrollEventArgs const& param1)
            {
                auto gil = py::ensure_gil();

                try
                {
                    py::pyobj_handle py_param0{py::convert(param0)};
                    if (!py_param0)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle py_param1{py::convert(param1)};
                    if (!py_param1)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle args{PyTuple_Pack(2, py_param0.get(), py_param1.get())};
                    if (!args)
                    {
                        throw python_exception();
                    }

                    py::pyobj_handle return_value{PyObject_CallObject(delegate.callable(), args.get())};
                    if (!return_value)
                    {
                        throw python_exception();
                    }
                }
                catch (python_exception)
                {
                    py::write_unraisable_and_throw();
                }
            };
        };
    };
}

namespace py::wrapper::Windows::UI::Xaml::Controls::Primitives
{
    using AppBarButtonTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings>;
    using AppBarTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings>;
    using AppBarToggleButtonTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings>;
    using ButtonBase = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase>;
    using CalendarPanel = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::CalendarPanel>;
    using CalendarViewTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings>;
    using CarouselPanel = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::CarouselPanel>;
    using ColorPickerSlider = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ColorPickerSlider>;
    using ColorSpectrum = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ColorSpectrum>;
    using ComboBoxTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings>;
    using CommandBarFlyoutCommandBar = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::CommandBarFlyoutCommandBar>;
    using CommandBarFlyoutCommandBarTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::CommandBarFlyoutCommandBarTemplateSettings>;
    using CommandBarTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings>;
    using DragCompletedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::DragCompletedEventArgs>;
    using DragDeltaEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::DragDeltaEventArgs>;
    using DragStartedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::DragStartedEventArgs>;
    using FlyoutBase = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>;
    using FlyoutBaseClosingEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBaseClosingEventArgs>;
    using FlyoutShowOptions = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutShowOptions>;
    using GeneratorPositionHelper = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPositionHelper>;
    using GridViewItemPresenter = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::GridViewItemPresenter>;
    using GridViewItemTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings>;
    using ItemsChangedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs>;
    using JumpListItemBackgroundConverter = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::JumpListItemBackgroundConverter>;
    using JumpListItemForegroundConverter = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::JumpListItemForegroundConverter>;
    using LayoutInformation = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::LayoutInformation>;
    using ListViewItemPresenter = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemPresenter>;
    using ListViewItemTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings>;
    using LoopingSelector = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::LoopingSelector>;
    using LoopingSelectorItem = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::LoopingSelectorItem>;
    using LoopingSelectorPanel = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::LoopingSelectorPanel>;
    using MenuFlyoutItemTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings>;
    using MenuFlyoutPresenterTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings>;
    using NavigationViewItemPresenter = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::NavigationViewItemPresenter>;
    using OrientedVirtualizingPanel = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::OrientedVirtualizingPanel>;
    using PickerFlyoutBase = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::PickerFlyoutBase>;
    using PivotHeaderItem = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::PivotHeaderItem>;
    using PivotHeaderPanel = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::PivotHeaderPanel>;
    using PivotPanel = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::PivotPanel>;
    using Popup = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::Popup>;
    using ProgressBarTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings>;
    using ProgressRingTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings>;
    using RangeBase = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::RangeBase>;
    using RangeBaseValueChangedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs>;
    using RepeatButton = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::RepeatButton>;
    using ScrollBar = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ScrollBar>;
    using ScrollEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ScrollEventArgs>;
    using Selector = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::Selector>;
    using SelectorItem = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem>;
    using SettingsFlyoutTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings>;
    using SplitViewTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings>;
    using Thumb = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::Thumb>;
    using TickBar = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::TickBar>;
    using ToggleButton = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton>;
    using ToggleSwitchTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings>;
    using ToolTipTemplateSettings = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings>;
    using IScrollSnapPointsInfo = py::winrt_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::IScrollSnapPointsInfo>;
    using GeneratorPosition = py::winrt_struct_wrapper<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition>;
}

namespace py
{
    template <>
    struct delegate_python_type<winrt::Windows::UI::Xaml::Controls::Primitives::DragCompletedEventHandler>
    {
        using type = py::impl::Windows::UI::Xaml::Controls::Primitives::DragCompletedEventHandler;
    };

    template <>
    struct delegate_python_type<winrt::Windows::UI::Xaml::Controls::Primitives::DragDeltaEventHandler>
    {
        using type = py::impl::Windows::UI::Xaml::Controls::Primitives::DragDeltaEventHandler;
    };

    template <>
    struct delegate_python_type<winrt::Windows::UI::Xaml::Controls::Primitives::DragStartedEventHandler>
    {
        using type = py::impl::Windows::UI::Xaml::Controls::Primitives::DragStartedEventHandler;
    };

    template <>
    struct delegate_python_type<winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler>
    {
        using type = py::impl::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler;
    };

    template <>
    struct delegate_python_type<winrt::Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventHandler>
    {
        using type = py::impl::Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventHandler;
    };

    template <>
    struct delegate_python_type<winrt::Windows::UI::Xaml::Controls::Primitives::ScrollEventHandler>
    {
        using type = py::impl::Windows::UI::Xaml::Controls::Primitives::ScrollEventHandler;
    };

}
