// 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.Media.Playback.h>
#include <winrt/Windows.Storage.Streams.h>
#include <winrt/Windows.UI.h>
#include <winrt/Windows.UI.Composition.h>
#include <winrt/Windows.UI.Xaml.h>
#include <winrt/Windows.UI.Xaml.Controls.Primitives.h>
#include <winrt/Windows.UI.Xaml.Media.Media3D.h>

#include <winrt/Windows.UI.Xaml.Media.h>

namespace py::proj::Windows::UI::Xaml::Media
{
}

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

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::AlignmentX> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::AlignmentY> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::AudioCategory> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::AudioDeviceType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::BrushMappingMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::ColorInterpolationMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::ElementCompositeMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::FastPlayFallbackBehaviour> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::FillRule> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::GradientSpreadMethod> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::LoadedImageSourceLoadStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::MediaCanPlayResponse> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::MediaElementState> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::PenLineCap> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::PenLineJoin> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::RevealBrushState> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::Stereo3DVideoPackingMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::Stereo3DVideoRenderMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::Stretch> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::StyleSimulations> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::SweepDirection> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Xaml::Media::Matrix> = "T{d:m11:d:m12:d:m21:d:m22:d:offset_x:d:offset_y:}";


    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::AcrylicBackgroundSource>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.AcrylicBackgroundSource";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "AcrylicBackgroundSource";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::AlignmentX>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.AlignmentX";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "AlignmentX";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::AlignmentY>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.AlignmentY";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "AlignmentY";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::AudioCategory>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.AudioCategory";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "AudioCategory";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::AudioDeviceType>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.AudioDeviceType";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "AudioDeviceType";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::BrushMappingMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.BrushMappingMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "BrushMappingMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::ColorInterpolationMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.ColorInterpolationMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "ColorInterpolationMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::ElementCompositeMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.ElementCompositeMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "ElementCompositeMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::FastPlayFallbackBehaviour>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.FastPlayFallbackBehaviour";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "FastPlayFallbackBehaviour";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::FillRule>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.FillRule";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "FillRule";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::GradientSpreadMethod>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.GradientSpreadMethod";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "GradientSpreadMethod";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::LoadedImageSourceLoadStatus>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.LoadedImageSourceLoadStatus";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "LoadedImageSourceLoadStatus";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::MediaCanPlayResponse>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.MediaCanPlayResponse";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "MediaCanPlayResponse";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::MediaElementState>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.MediaElementState";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "MediaElementState";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PenLineCap>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PenLineCap";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PenLineCap";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PenLineJoin>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PenLineJoin";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PenLineJoin";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::RevealBrushState>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.RevealBrushState";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "RevealBrushState";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Stereo3DVideoPackingMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Stereo3DVideoPackingMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Stereo3DVideoPackingMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Stereo3DVideoRenderMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Stereo3DVideoRenderMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Stereo3DVideoRenderMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Stretch>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Stretch";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Stretch";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::StyleSimulations>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.StyleSimulations";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "StyleSimulations";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::SweepDirection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.SweepDirection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "SweepDirection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::AcrylicBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.AcrylicBrush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "AcrylicBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::ArcSegment>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.ArcSegment";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "ArcSegment";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::BezierSegment>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.BezierSegment";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "BezierSegment";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::BitmapCache>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.BitmapCache";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "BitmapCache";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Brush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Brush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Brush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::BrushCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.BrushCollection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "BrushCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::CacheMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.CacheMode";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "CacheMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::CompositeTransform>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.CompositeTransform";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "CompositeTransform";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::CompositionTarget>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.CompositionTarget";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "CompositionTarget";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::DoubleCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.DoubleCollection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "DoubleCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::EllipseGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.EllipseGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "EllipseGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::FontFamily>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.FontFamily";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "FontFamily";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::GeneralTransform>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.GeneralTransform";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "GeneralTransform";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Geometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Geometry";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Geometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::GeometryCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.GeometryCollection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "GeometryCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::GeometryGroup>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.GeometryGroup";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "GeometryGroup";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::GradientBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.GradientBrush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "GradientBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::GradientStop>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.GradientStop";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "GradientStop";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::GradientStopCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.GradientStopCollection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "GradientStopCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::ImageBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.ImageBrush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "ImageBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::ImageSource>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.ImageSource";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "ImageSource";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::LineGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.LineGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "LineGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::LineSegment>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.LineSegment";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "LineSegment";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::LinearGradientBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.LinearGradientBrush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "LinearGradientBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::LoadedImageSourceLoadCompletedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.LoadedImageSourceLoadCompletedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "LoadedImageSourceLoadCompletedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::LoadedImageSurface>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.LoadedImageSurface";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "LoadedImageSurface";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Matrix3DProjection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Matrix3DProjection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Matrix3DProjection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::MatrixHelper>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.MatrixHelper";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "MatrixHelper";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::MatrixTransform>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.MatrixTransform";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "MatrixTransform";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.MediaTransportControlsThumbnailRequestedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "MediaTransportControlsThumbnailRequestedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PartialMediaFailureDetectedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PartialMediaFailureDetectedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PathFigure>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PathFigure";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PathFigure";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PathFigureCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PathFigureCollection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PathFigureCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PathGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PathGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PathGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PathSegment>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PathSegment";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PathSegment";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PathSegmentCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PathSegmentCollection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PathSegmentCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PlaneProjection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PlaneProjection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PlaneProjection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PointCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PointCollection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PointCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PolyBezierSegment>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PolyBezierSegment";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PolyBezierSegment";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PolyLineSegment>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PolyLineSegment";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PolyLineSegment";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::PolyQuadraticBezierSegment>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.PolyQuadraticBezierSegment";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "PolyQuadraticBezierSegment";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Projection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Projection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Projection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::QuadraticBezierSegment>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.QuadraticBezierSegment";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "QuadraticBezierSegment";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::RateChangedRoutedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.RateChangedRoutedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "RateChangedRoutedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::RectangleGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.RectangleGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "RectangleGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::RenderedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.RenderedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "RenderedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::RenderingEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.RenderingEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "RenderingEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::RevealBackgroundBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.RevealBackgroundBrush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "RevealBackgroundBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::RevealBorderBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.RevealBorderBrush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "RevealBorderBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::RevealBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.RevealBrush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "RevealBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::RotateTransform>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.RotateTransform";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "RotateTransform";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::ScaleTransform>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.ScaleTransform";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "ScaleTransform";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Shadow>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Shadow";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Shadow";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::SkewTransform>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.SkewTransform";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "SkewTransform";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::SolidColorBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.SolidColorBrush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "SolidColorBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::ThemeShadow>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.ThemeShadow";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "ThemeShadow";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::TileBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.TileBrush";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "TileBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::TimelineMarker>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.TimelineMarker";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "TimelineMarker";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::TimelineMarkerCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.TimelineMarkerCollection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "TimelineMarkerCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::TimelineMarkerRoutedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.TimelineMarkerRoutedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "TimelineMarkerRoutedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Transform>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Transform";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Transform";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::TransformCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.TransformCollection";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "TransformCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::TransformGroup>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.TransformGroup";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "TransformGroup";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::TranslateTransform>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.TranslateTransform";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "TranslateTransform";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::VisualTreeHelper>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.VisualTreeHelper";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "VisualTreeHelper";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::XamlCompositionBrushBase>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.XamlCompositionBrushBase";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "XamlCompositionBrushBase";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::XamlLight>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.XamlLight";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "XamlLight";
    };

    template<>
    struct py_type<winrt::Windows::UI::Xaml::Media::Matrix>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_ui_xaml_media.Matrix_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.ui.xaml.media.Matrix";
        static constexpr const char* module_name = "winrt.windows.ui.xaml.media";
        static constexpr const char* type_name = "Matrix";
    };
}

#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.Media.Playback.h")
#include "py.Windows.Media.Playback.h"
#endif

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

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

#if __has_include("py.Windows.UI.Composition.h")
#include "py.Windows.UI.Composition.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.Primitives.h")
#include "py.Windows.UI.Xaml.Controls.Primitives.h"
#endif

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

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

            return [delegate = std::move(_delegate)](winrt::Windows::Foundation::IInspectable const& param0, winrt::Windows::UI::Xaml::Media::RateChangedRoutedEventArgs 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 TimelineMarkerRoutedEventHandler
    {
        static winrt::Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler get(PyObject* callable)
        {
            py::delegate_callable _delegate{ callable };

            return [delegate = std::move(_delegate)](winrt::Windows::Foundation::IInspectable const& param0, winrt::Windows::UI::Xaml::Media::TimelineMarkerRoutedEventArgs 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::Media
{
    using AcrylicBrush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::AcrylicBrush>;
    using ArcSegment = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::ArcSegment>;
    using BezierSegment = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::BezierSegment>;
    using BitmapCache = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::BitmapCache>;
    using Brush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::Brush>;
    using BrushCollection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::BrushCollection>;
    using CacheMode = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::CacheMode>;
    using CompositeTransform = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::CompositeTransform>;
    using CompositionTarget = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::CompositionTarget>;
    using DoubleCollection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::DoubleCollection>;
    using EllipseGeometry = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::EllipseGeometry>;
    using FontFamily = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::FontFamily>;
    using GeneralTransform = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::GeneralTransform>;
    using Geometry = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::Geometry>;
    using GeometryCollection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::GeometryCollection>;
    using GeometryGroup = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::GeometryGroup>;
    using GradientBrush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::GradientBrush>;
    using GradientStop = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::GradientStop>;
    using GradientStopCollection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::GradientStopCollection>;
    using ImageBrush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::ImageBrush>;
    using ImageSource = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::ImageSource>;
    using LineGeometry = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::LineGeometry>;
    using LineSegment = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::LineSegment>;
    using LinearGradientBrush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::LinearGradientBrush>;
    using LoadedImageSourceLoadCompletedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::LoadedImageSourceLoadCompletedEventArgs>;
    using LoadedImageSurface = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::LoadedImageSurface>;
    using Matrix3DProjection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::Matrix3DProjection>;
    using MatrixHelper = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::MatrixHelper>;
    using MatrixTransform = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::MatrixTransform>;
    using MediaTransportControlsThumbnailRequestedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs>;
    using PartialMediaFailureDetectedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs>;
    using PathFigure = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PathFigure>;
    using PathFigureCollection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PathFigureCollection>;
    using PathGeometry = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PathGeometry>;
    using PathSegment = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PathSegment>;
    using PathSegmentCollection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PathSegmentCollection>;
    using PlaneProjection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PlaneProjection>;
    using PointCollection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PointCollection>;
    using PolyBezierSegment = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PolyBezierSegment>;
    using PolyLineSegment = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PolyLineSegment>;
    using PolyQuadraticBezierSegment = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::PolyQuadraticBezierSegment>;
    using Projection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::Projection>;
    using QuadraticBezierSegment = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::QuadraticBezierSegment>;
    using RateChangedRoutedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::RateChangedRoutedEventArgs>;
    using RectangleGeometry = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::RectangleGeometry>;
    using RenderedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::RenderedEventArgs>;
    using RenderingEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::RenderingEventArgs>;
    using RevealBackgroundBrush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::RevealBackgroundBrush>;
    using RevealBorderBrush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::RevealBorderBrush>;
    using RevealBrush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::RevealBrush>;
    using RotateTransform = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::RotateTransform>;
    using ScaleTransform = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::ScaleTransform>;
    using Shadow = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::Shadow>;
    using SkewTransform = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::SkewTransform>;
    using SolidColorBrush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::SolidColorBrush>;
    using ThemeShadow = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::ThemeShadow>;
    using TileBrush = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::TileBrush>;
    using TimelineMarker = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::TimelineMarker>;
    using TimelineMarkerCollection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::TimelineMarkerCollection>;
    using TimelineMarkerRoutedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::TimelineMarkerRoutedEventArgs>;
    using Transform = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::Transform>;
    using TransformCollection = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::TransformCollection>;
    using TransformGroup = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::TransformGroup>;
    using TranslateTransform = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::TranslateTransform>;
    using VisualTreeHelper = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::VisualTreeHelper>;
    using XamlCompositionBrushBase = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::XamlCompositionBrushBase>;
    using XamlLight = py::winrt_wrapper<winrt::Windows::UI::Xaml::Media::XamlLight>;
    using Matrix = py::winrt_struct_wrapper<winrt::Windows::UI::Xaml::Media::Matrix>;
}

namespace py
{
    template <>
    struct delegate_python_type<winrt::Windows::UI::Xaml::Media::RateChangedRoutedEventHandler>
    {
        using type = py::impl::Windows::UI::Xaml::Media::RateChangedRoutedEventHandler;
    };

    template <>
    struct delegate_python_type<winrt::Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler>
    {
        using type = py::impl::Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler;
    };

}
