// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15

#pragma once
#ifndef WINRT_Microsoft_UI_Composition_0_H
#define WINRT_Microsoft_UI_Composition_0_H
WINRT_EXPORT namespace winrt::Microsoft::Graphics::DirectX
{
    enum class DirectXAlphaMode : int32_t;
    enum class DirectXPixelFormat : int32_t;
}
WINRT_EXPORT namespace winrt::Microsoft::UI::Dispatching
{
    struct DispatcherQueue;
}
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct EventRegistrationToken;
    struct HResult;
    struct IAsyncAction;
    template <typename T> struct WINRT_IMPL_EMPTY_BASES IReference;
    struct Size;
    template <typename TSender, typename TResult> struct WINRT_IMPL_EMPTY_BASES TypedEventHandler;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
{
    template <typename T> struct WINRT_IMPL_EMPTY_BASES IIterable;
    template <typename K, typename V> struct WINRT_IMPL_EMPTY_BASES IMap;
    template <typename T> struct WINRT_IMPL_EMPTY_BASES IVector;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Numerics
{
}
WINRT_EXPORT namespace winrt::Windows::Graphics
{
    struct IGeometrySource2D;
    struct PointInt32;
    struct RectInt32;
    struct SizeInt32;
}
WINRT_EXPORT namespace winrt::Windows::Graphics::Effects
{
    struct IGraphicsEffect;
}
WINRT_EXPORT namespace winrt::Windows::UI
{
    struct Color;
}
WINRT_EXPORT namespace winrt::Windows::UI::Composition
{
    struct CompositionBrush;
}
WINRT_EXPORT namespace winrt::Microsoft::UI::Composition
{
    enum class AnimationControllerProgressBehavior : int32_t
    {
        Default = 0,
        IncludesDelayTime = 1,
    };
    enum class AnimationDelayBehavior : int32_t
    {
        SetInitialValueAfterDelay = 0,
        SetInitialValueBeforeDelay = 1,
    };
    enum class AnimationDirection : int32_t
    {
        Normal = 0,
        Reverse = 1,
        Alternate = 2,
        AlternateReverse = 3,
    };
    enum class AnimationIterationBehavior : int32_t
    {
        Count = 0,
        Forever = 1,
    };
    enum class AnimationPropertyAccessMode : int32_t
    {
        None = 0,
        ReadOnly = 1,
        WriteOnly = 2,
        ReadWrite = 3,
    };
    enum class AnimationStopBehavior : int32_t
    {
        LeaveCurrentValue = 0,
        SetToInitialValue = 1,
        SetToFinalValue = 2,
    };
    enum class CompositionBackfaceVisibility : int32_t
    {
        Inherit = 0,
        Visible = 1,
        Hidden = 2,
    };
    enum class CompositionBatchTypes : uint32_t
    {
        None = 0,
        Animation = 0x1,
        Effect = 0x2,
        InfiniteAnimation = 0x4,
        AllAnimations = 0x5,
    };
    enum class CompositionBitmapInterpolationMode : int32_t
    {
        NearestNeighbor = 0,
        Linear = 1,
        MagLinearMinLinearMipLinear = 2,
        MagLinearMinLinearMipNearest = 3,
        MagLinearMinNearestMipLinear = 4,
        MagLinearMinNearestMipNearest = 5,
        MagNearestMinLinearMipLinear = 6,
        MagNearestMinLinearMipNearest = 7,
        MagNearestMinNearestMipLinear = 8,
        MagNearestMinNearestMipNearest = 9,
    };
    enum class CompositionBorderMode : int32_t
    {
        Inherit = 0,
        Soft = 1,
        Hard = 2,
    };
    enum class CompositionColorSpace : int32_t
    {
        Auto = 0,
        Hsl = 1,
        Rgb = 2,
        HslLinear = 3,
        RgbLinear = 4,
    };
    enum class CompositionCompositeMode : int32_t
    {
        Inherit = 0,
        SourceOver = 1,
        DestinationInvert = 2,
        MinBlend = 3,
    };
    enum class CompositionDropShadowSourcePolicy : int32_t
    {
        Default = 0,
        InheritFromVisualContent = 1,
    };
    enum class CompositionEasingFunctionMode : int32_t
    {
        In = 0,
        Out = 1,
        InOut = 2,
    };
    enum class CompositionEffectFactoryLoadStatus : int32_t
    {
        Success = 0,
        EffectTooComplex = 1,
        Pending = 2,
        Other = -1,
    };
    enum class CompositionGetValueStatus : int32_t
    {
        Succeeded = 0,
        TypeMismatch = 1,
        NotFound = 2,
    };
    enum class CompositionGradientExtendMode : int32_t
    {
        Clamp = 0,
        Wrap = 1,
        Mirror = 2,
    };
    enum class CompositionMappingMode : int32_t
    {
        Absolute = 0,
        Relative = 1,
    };
    enum class CompositionStretch : int32_t
    {
        None = 0,
        Fill = 1,
        Uniform = 2,
        UniformToFill = 3,
    };
    enum class CompositionStrokeCap : int32_t
    {
        Flat = 0,
        Square = 1,
        Round = 2,
        Triangle = 3,
    };
    enum class CompositionStrokeLineJoin : int32_t
    {
        Miter = 0,
        Bevel = 1,
        Round = 2,
        MiterOrBevel = 3,
    };
    struct IAmbientLight;
    struct IAmbientLight2;
    struct IAnimationController;
    struct IAnimationControllerStatics;
    struct IAnimationObject;
    struct IAnimationPropertyInfo;
    struct IAnimationPropertyInfo2;
    struct IBackEasingFunction;
    struct IBooleanKeyFrameAnimation;
    struct IBounceEasingFunction;
    struct IBounceScalarNaturalMotionAnimation;
    struct IBounceVector2NaturalMotionAnimation;
    struct IBounceVector3NaturalMotionAnimation;
    struct ICircleEasingFunction;
    struct IColorKeyFrameAnimation;
    struct ICompositionAnimation;
    struct ICompositionAnimation2;
    struct ICompositionAnimation3;
    struct ICompositionAnimation4;
    struct ICompositionAnimationBase;
    struct ICompositionAnimationFactory;
    struct ICompositionAnimationGroup;
    struct ICompositionApiInformationStatics;
    struct ICompositionBackdropBrush;
    struct ICompositionBatchCompletedEventArgs;
    struct ICompositionBrush;
    struct ICompositionBrushFactory;
    struct ICompositionCapabilities;
    struct ICompositionClip;
    struct ICompositionClip2;
    struct ICompositionClipFactory;
    struct ICompositionColorBrush;
    struct ICompositionColorGradientStop;
    struct ICompositionColorGradientStopCollection;
    struct ICompositionCommitBatch;
    struct ICompositionContainerShape;
    struct ICompositionDrawingSurface;
    struct ICompositionDrawingSurface2;
    struct ICompositionDrawingSurfaceFactory;
    struct ICompositionEasingFunction;
    struct ICompositionEasingFunctionFactory;
    struct ICompositionEasingFunctionStatics;
    struct ICompositionEffectBrush;
    struct ICompositionEffectFactory;
    struct ICompositionEffectSourceParameter;
    struct ICompositionEffectSourceParameterFactory;
    struct ICompositionEllipseGeometry;
    struct ICompositionGeometricClip;
    struct ICompositionGeometry;
    struct ICompositionGeometryFactory;
    struct ICompositionGradientBrush;
    struct ICompositionGradientBrush2;
    struct ICompositionGradientBrushFactory;
    struct ICompositionGraphicsDevice;
    struct ICompositionGraphicsDevice2;
    struct ICompositionGraphicsDevice3;
    struct ICompositionGraphicsDevice4;
    struct ICompositionLight;
    struct ICompositionLight2;
    struct ICompositionLight3;
    struct ICompositionLightFactory;
    struct ICompositionLineGeometry;
    struct ICompositionLinearGradientBrush;
    struct ICompositionMaskBrush;
    struct ICompositionMipmapSurface;
    struct ICompositionNineGridBrush;
    struct ICompositionObject;
    struct ICompositionObject2;
    struct ICompositionObject3;
    struct ICompositionObject4;
    struct ICompositionObject5;
    struct ICompositionObjectFactory;
    struct ICompositionObjectStatics;
    struct ICompositionPath;
    struct ICompositionPathFactory;
    struct ICompositionPathGeometry;
    struct ICompositionProjectedShadow;
    struct ICompositionProjectedShadowCaster;
    struct ICompositionProjectedShadowCasterCollection;
    struct ICompositionProjectedShadowCasterCollectionStatics;
    struct ICompositionProjectedShadowReceiver;
    struct ICompositionProjectedShadowReceiverUnorderedCollection;
    struct ICompositionPropertySet;
    struct ICompositionPropertySet2;
    struct ICompositionRadialGradientBrush;
    struct ICompositionRectangleGeometry;
    struct ICompositionRoundedRectangleGeometry;
    struct ICompositionScopedBatch;
    struct ICompositionShadow;
    struct ICompositionShadowFactory;
    struct ICompositionShape;
    struct ICompositionShapeFactory;
    struct ICompositionSpriteShape;
    struct ICompositionSupportsSystemBackdrop;
    struct ICompositionSurface;
    struct ICompositionSurfaceBrush;
    struct ICompositionSurfaceBrush2;
    struct ICompositionSurfaceBrush3;
    struct ICompositionSurfaceFacade;
    struct ICompositionTransform;
    struct ICompositionTransformFactory;
    struct ICompositionViewBox;
    struct ICompositionVirtualDrawingSurface;
    struct ICompositionVirtualDrawingSurfaceFactory;
    struct ICompositionVisualSurface;
    struct ICompositor;
    struct ICompositor2;
    struct ICompositor4;
    struct ICompositor5;
    struct ICompositor6;
    struct ICompositor7;
    struct ICompositor8;
    struct ICompositorStatics;
    struct ICompositorWithProjectedShadow;
    struct ICompositorWithRadialGradient;
    struct ICompositorWithVisualSurface;
    struct IContainerVisual;
    struct IContainerVisualFactory;
    struct ICubicBezierEasingFunction;
    struct IDistantLight;
    struct IDistantLight2;
    struct IDropShadow;
    struct IDropShadow2;
    struct IElasticEasingFunction;
    struct IExponentialEasingFunction;
    struct IExpressionAnimation;
    struct IImplicitAnimationCollection;
    struct IInsetClip;
    struct IKeyFrameAnimation;
    struct IKeyFrameAnimation2;
    struct IKeyFrameAnimation3;
    struct IKeyFrameAnimationFactory;
    struct ILayerVisual;
    struct ILayerVisual2;
    struct ILinearEasingFunction;
    struct INaturalMotionAnimation;
    struct INaturalMotionAnimationFactory;
    struct IPathKeyFrameAnimation;
    struct IPointLight;
    struct IPointLight2;
    struct IPointLight3;
    struct IPowerEasingFunction;
    struct IQuaternionKeyFrameAnimation;
    struct IRectangleClip;
    struct IRedirectVisual;
    struct IRenderingDeviceReplacedEventArgs;
    struct IScalarKeyFrameAnimation;
    struct IScalarNaturalMotionAnimation;
    struct IScalarNaturalMotionAnimationFactory;
    struct IShapeVisual;
    struct ISineEasingFunction;
    struct ISpotLight;
    struct ISpotLight2;
    struct ISpotLight3;
    struct ISpringScalarNaturalMotionAnimation;
    struct ISpringVector2NaturalMotionAnimation;
    struct ISpringVector3NaturalMotionAnimation;
    struct ISpriteVisual;
    struct ISpriteVisual2;
    struct IStepEasingFunction;
    struct IVector2KeyFrameAnimation;
    struct IVector2NaturalMotionAnimation;
    struct IVector2NaturalMotionAnimationFactory;
    struct IVector3KeyFrameAnimation;
    struct IVector3NaturalMotionAnimation;
    struct IVector3NaturalMotionAnimationFactory;
    struct IVector4KeyFrameAnimation;
    struct IVisual;
    struct IVisual2;
    struct IVisual3;
    struct IVisual4;
    struct IVisualCollection;
    struct IVisualElement;
    struct IVisualElement2;
    struct IVisualFactory;
    struct IVisualUnorderedCollection;
    struct AmbientLight;
    struct AnimationController;
    struct AnimationPropertyInfo;
    struct BackEasingFunction;
    struct BooleanKeyFrameAnimation;
    struct BounceEasingFunction;
    struct BounceScalarNaturalMotionAnimation;
    struct BounceVector2NaturalMotionAnimation;
    struct BounceVector3NaturalMotionAnimation;
    struct CircleEasingFunction;
    struct ColorKeyFrameAnimation;
    struct CompositionAnimation;
    struct CompositionAnimationGroup;
    struct CompositionApiInformation;
    struct CompositionBackdropBrush;
    struct CompositionBatchCompletedEventArgs;
    struct CompositionBrush;
    struct CompositionCapabilities;
    struct CompositionClip;
    struct CompositionColorBrush;
    struct CompositionColorGradientStop;
    struct CompositionColorGradientStopCollection;
    struct CompositionCommitBatch;
    struct CompositionContainerShape;
    struct CompositionDrawingSurface;
    struct CompositionEasingFunction;
    struct CompositionEffectBrush;
    struct CompositionEffectFactory;
    struct CompositionEffectSourceParameter;
    struct CompositionEllipseGeometry;
    struct CompositionGeometricClip;
    struct CompositionGeometry;
    struct CompositionGradientBrush;
    struct CompositionGraphicsDevice;
    struct CompositionLight;
    struct CompositionLineGeometry;
    struct CompositionLinearGradientBrush;
    struct CompositionMaskBrush;
    struct CompositionMipmapSurface;
    struct CompositionNineGridBrush;
    struct CompositionObject;
    struct CompositionPath;
    struct CompositionPathGeometry;
    struct CompositionProjectedShadow;
    struct CompositionProjectedShadowCaster;
    struct CompositionProjectedShadowCasterCollection;
    struct CompositionProjectedShadowReceiver;
    struct CompositionProjectedShadowReceiverUnorderedCollection;
    struct CompositionPropertySet;
    struct CompositionRadialGradientBrush;
    struct CompositionRectangleGeometry;
    struct CompositionRoundedRectangleGeometry;
    struct CompositionScopedBatch;
    struct CompositionShadow;
    struct CompositionShape;
    struct CompositionShapeCollection;
    struct CompositionSpriteShape;
    struct CompositionStrokeDashArray;
    struct CompositionSurfaceBrush;
    struct CompositionTransform;
    struct CompositionViewBox;
    struct CompositionVirtualDrawingSurface;
    struct CompositionVisualSurface;
    struct Compositor;
    struct ContainerVisual;
    struct CubicBezierEasingFunction;
    struct DistantLight;
    struct DropShadow;
    struct ElasticEasingFunction;
    struct ExponentialEasingFunction;
    struct ExpressionAnimation;
    struct ImplicitAnimationCollection;
    struct InitialValueExpressionCollection;
    struct InsetClip;
    struct KeyFrameAnimation;
    struct LayerVisual;
    struct LinearEasingFunction;
    struct NaturalMotionAnimation;
    struct PathKeyFrameAnimation;
    struct PointLight;
    struct PowerEasingFunction;
    struct QuaternionKeyFrameAnimation;
    struct RectangleClip;
    struct RedirectVisual;
    struct RenderingDeviceReplacedEventArgs;
    struct ScalarKeyFrameAnimation;
    struct ScalarNaturalMotionAnimation;
    struct ShapeVisual;
    struct SineEasingFunction;
    struct SpotLight;
    struct SpringScalarNaturalMotionAnimation;
    struct SpringVector2NaturalMotionAnimation;
    struct SpringVector3NaturalMotionAnimation;
    struct SpriteVisual;
    struct StepEasingFunction;
    struct Vector2KeyFrameAnimation;
    struct Vector2NaturalMotionAnimation;
    struct Vector3KeyFrameAnimation;
    struct Vector3NaturalMotionAnimation;
    struct Vector4KeyFrameAnimation;
    struct Visual;
    struct VisualCollection;
    struct VisualUnorderedCollection;
}
namespace winrt::impl
{
    template <> struct category<winrt::Microsoft::UI::Composition::IAmbientLight>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IAmbientLight2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IAnimationController>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IAnimationControllerStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IAnimationObject>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IBackEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IBooleanKeyFrameAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IBounceEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IBounceScalarNaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IBounceVector2NaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IBounceVector3NaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICircleEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IColorKeyFrameAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionAnimation2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionAnimation3>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionAnimation4>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionAnimationBase>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionAnimationFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionAnimationGroup>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionApiInformationStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionBackdropBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionBatchCompletedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionBrushFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionCapabilities>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionClip>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionClip2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionClipFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionColorBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionColorGradientStop>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionColorGradientStopCollection>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionCommitBatch>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionContainerShape>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionDrawingSurfaceFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionEffectBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionEffectFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameter>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameterFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionEllipseGeometry>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGeometricClip>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGeometry>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGeometryFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGradientBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGradientBrush2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGradientBrushFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice3>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice4>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionLight>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionLight2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionLight3>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionLightFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionLineGeometry>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionLinearGradientBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionMaskBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionMipmapSurface>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionNineGridBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionObject>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionObject2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionObject3>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionObject4>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionObject5>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionObjectFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionObjectStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionPath>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionPathFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionPathGeometry>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionProjectedShadow>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCaster>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollection>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollectionStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiver>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiverUnorderedCollection>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionPropertySet>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionPropertySet2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionRadialGradientBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionRectangleGeometry>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionRoundedRectangleGeometry>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionScopedBatch>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionShadow>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionShadowFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionShape>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionShapeFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionSpriteShape>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionSupportsSystemBackdrop>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionSurface>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush3>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionSurfaceFacade>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionTransform>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionTransformFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionViewBox>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurface>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurfaceFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositionVisualSurface>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositor>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositor2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositor4>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositor5>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositor6>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositor7>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositor8>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositorStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositorWithProjectedShadow>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositorWithRadialGradient>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICompositorWithVisualSurface>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IContainerVisual>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IContainerVisualFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ICubicBezierEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IDistantLight>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IDistantLight2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IDropShadow>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IDropShadow2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IElasticEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IExponentialEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IExpressionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IImplicitAnimationCollection>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IInsetClip>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IKeyFrameAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IKeyFrameAnimation2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IKeyFrameAnimation3>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IKeyFrameAnimationFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ILayerVisual>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ILayerVisual2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ILinearEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::INaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::INaturalMotionAnimationFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IPathKeyFrameAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IPointLight>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IPointLight2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IPointLight3>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IPowerEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IQuaternionKeyFrameAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IRectangleClip>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IRedirectVisual>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IRenderingDeviceReplacedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IScalarKeyFrameAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimationFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IShapeVisual>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ISineEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ISpotLight>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ISpotLight2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ISpotLight3>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ISpringScalarNaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ISpringVector2NaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ISpringVector3NaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ISpriteVisual>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ISpriteVisual2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IStepEasingFunction>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVector2KeyFrameAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimationFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVector3KeyFrameAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimationFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVector4KeyFrameAnimation>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVisual>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVisual2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVisual3>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVisual4>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVisualCollection>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVisualElement>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVisualElement2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVisualFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::IVisualUnorderedCollection>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::AmbientLight>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::AnimationController>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::AnimationPropertyInfo>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::BackEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::BooleanKeyFrameAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::BounceEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::BounceScalarNaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::BounceVector2NaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::BounceVector3NaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CircleEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ColorKeyFrameAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionAnimationGroup>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionApiInformation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionBackdropBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionBatchCompletedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionCapabilities>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionClip>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionColorBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionColorGradientStop>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionColorGradientStopCollection>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionCommitBatch>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionContainerShape>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionDrawingSurface>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionEffectBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionEffectFactory>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionEffectSourceParameter>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionEllipseGeometry>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionGeometricClip>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionGeometry>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionGradientBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionGraphicsDevice>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionLight>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionLineGeometry>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionLinearGradientBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionMaskBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionMipmapSurface>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionNineGridBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionObject>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionPath>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionPathGeometry>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionProjectedShadow>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionProjectedShadowCasterCollection>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionProjectedShadowReceiver>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionProjectedShadowReceiverUnorderedCollection>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionPropertySet>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionRadialGradientBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionRectangleGeometry>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionRoundedRectangleGeometry>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionScopedBatch>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionShadow>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionShape>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionShapeCollection>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionSpriteShape>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionStrokeDashArray>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionSurfaceBrush>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionTransform>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionViewBox>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionVirtualDrawingSurface>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionVisualSurface>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::Compositor>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ContainerVisual>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CubicBezierEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::DistantLight>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::DropShadow>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ElasticEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ExponentialEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ExpressionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ImplicitAnimationCollection>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::InitialValueExpressionCollection>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::InsetClip>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::KeyFrameAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::LayerVisual>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::LinearEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::NaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::PathKeyFrameAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::PointLight>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::PowerEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::QuaternionKeyFrameAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::RectangleClip>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::RedirectVisual>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::RenderingDeviceReplacedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ScalarKeyFrameAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ScalarNaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::ShapeVisual>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::SineEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::SpotLight>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::SpringScalarNaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::SpringVector2NaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::SpringVector3NaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::SpriteVisual>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::StepEasingFunction>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::Vector2KeyFrameAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::Vector2NaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::Vector3KeyFrameAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::Vector3NaturalMotionAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::Vector4KeyFrameAnimation>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::Visual>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::VisualCollection>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::VisualUnorderedCollection>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::AnimationControllerProgressBehavior>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::AnimationDelayBehavior>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::AnimationDirection>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::AnimationIterationBehavior>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::AnimationPropertyAccessMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::AnimationStopBehavior>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionBackfaceVisibility>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionBatchTypes>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionBitmapInterpolationMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionBorderMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionColorSpace>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionCompositeMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionDropShadowSourcePolicy>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionEasingFunctionMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionEffectFactoryLoadStatus>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionGetValueStatus>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionGradientExtendMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionMappingMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionStretch>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionStrokeCap>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Composition::CompositionStrokeLineJoin>{ using type = enum_category; };
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::AmbientLight> = L"Microsoft.UI.Composition.AmbientLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::AnimationController> = L"Microsoft.UI.Composition.AnimationController";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::AnimationPropertyInfo> = L"Microsoft.UI.Composition.AnimationPropertyInfo";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::BackEasingFunction> = L"Microsoft.UI.Composition.BackEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::BooleanKeyFrameAnimation> = L"Microsoft.UI.Composition.BooleanKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::BounceEasingFunction> = L"Microsoft.UI.Composition.BounceEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::BounceScalarNaturalMotionAnimation> = L"Microsoft.UI.Composition.BounceScalarNaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::BounceVector2NaturalMotionAnimation> = L"Microsoft.UI.Composition.BounceVector2NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::BounceVector3NaturalMotionAnimation> = L"Microsoft.UI.Composition.BounceVector3NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CircleEasingFunction> = L"Microsoft.UI.Composition.CircleEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ColorKeyFrameAnimation> = L"Microsoft.UI.Composition.ColorKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionAnimation> = L"Microsoft.UI.Composition.CompositionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionAnimationGroup> = L"Microsoft.UI.Composition.CompositionAnimationGroup";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionApiInformation> = L"Microsoft.UI.Composition.CompositionApiInformation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionBackdropBrush> = L"Microsoft.UI.Composition.CompositionBackdropBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionBatchCompletedEventArgs> = L"Microsoft.UI.Composition.CompositionBatchCompletedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionBrush> = L"Microsoft.UI.Composition.CompositionBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionCapabilities> = L"Microsoft.UI.Composition.CompositionCapabilities";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionClip> = L"Microsoft.UI.Composition.CompositionClip";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionColorBrush> = L"Microsoft.UI.Composition.CompositionColorBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionColorGradientStop> = L"Microsoft.UI.Composition.CompositionColorGradientStop";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionColorGradientStopCollection> = L"Microsoft.UI.Composition.CompositionColorGradientStopCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionCommitBatch> = L"Microsoft.UI.Composition.CompositionCommitBatch";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionContainerShape> = L"Microsoft.UI.Composition.CompositionContainerShape";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionDrawingSurface> = L"Microsoft.UI.Composition.CompositionDrawingSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionEasingFunction> = L"Microsoft.UI.Composition.CompositionEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionEffectBrush> = L"Microsoft.UI.Composition.CompositionEffectBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionEffectFactory> = L"Microsoft.UI.Composition.CompositionEffectFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionEffectSourceParameter> = L"Microsoft.UI.Composition.CompositionEffectSourceParameter";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionEllipseGeometry> = L"Microsoft.UI.Composition.CompositionEllipseGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionGeometricClip> = L"Microsoft.UI.Composition.CompositionGeometricClip";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionGeometry> = L"Microsoft.UI.Composition.CompositionGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionGradientBrush> = L"Microsoft.UI.Composition.CompositionGradientBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionGraphicsDevice> = L"Microsoft.UI.Composition.CompositionGraphicsDevice";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionLight> = L"Microsoft.UI.Composition.CompositionLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionLineGeometry> = L"Microsoft.UI.Composition.CompositionLineGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionLinearGradientBrush> = L"Microsoft.UI.Composition.CompositionLinearGradientBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionMaskBrush> = L"Microsoft.UI.Composition.CompositionMaskBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionMipmapSurface> = L"Microsoft.UI.Composition.CompositionMipmapSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionNineGridBrush> = L"Microsoft.UI.Composition.CompositionNineGridBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionObject> = L"Microsoft.UI.Composition.CompositionObject";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionPath> = L"Microsoft.UI.Composition.CompositionPath";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionPathGeometry> = L"Microsoft.UI.Composition.CompositionPathGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionProjectedShadow> = L"Microsoft.UI.Composition.CompositionProjectedShadow";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster> = L"Microsoft.UI.Composition.CompositionProjectedShadowCaster";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionProjectedShadowCasterCollection> = L"Microsoft.UI.Composition.CompositionProjectedShadowCasterCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionProjectedShadowReceiver> = L"Microsoft.UI.Composition.CompositionProjectedShadowReceiver";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionProjectedShadowReceiverUnorderedCollection> = L"Microsoft.UI.Composition.CompositionProjectedShadowReceiverUnorderedCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionPropertySet> = L"Microsoft.UI.Composition.CompositionPropertySet";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionRadialGradientBrush> = L"Microsoft.UI.Composition.CompositionRadialGradientBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionRectangleGeometry> = L"Microsoft.UI.Composition.CompositionRectangleGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionRoundedRectangleGeometry> = L"Microsoft.UI.Composition.CompositionRoundedRectangleGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionScopedBatch> = L"Microsoft.UI.Composition.CompositionScopedBatch";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionShadow> = L"Microsoft.UI.Composition.CompositionShadow";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionShape> = L"Microsoft.UI.Composition.CompositionShape";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionShapeCollection> = L"Microsoft.UI.Composition.CompositionShapeCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionSpriteShape> = L"Microsoft.UI.Composition.CompositionSpriteShape";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionStrokeDashArray> = L"Microsoft.UI.Composition.CompositionStrokeDashArray";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionSurfaceBrush> = L"Microsoft.UI.Composition.CompositionSurfaceBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionTransform> = L"Microsoft.UI.Composition.CompositionTransform";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionViewBox> = L"Microsoft.UI.Composition.CompositionViewBox";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionVirtualDrawingSurface> = L"Microsoft.UI.Composition.CompositionVirtualDrawingSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionVisualSurface> = L"Microsoft.UI.Composition.CompositionVisualSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::Compositor> = L"Microsoft.UI.Composition.Compositor";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ContainerVisual> = L"Microsoft.UI.Composition.ContainerVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CubicBezierEasingFunction> = L"Microsoft.UI.Composition.CubicBezierEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::DistantLight> = L"Microsoft.UI.Composition.DistantLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::DropShadow> = L"Microsoft.UI.Composition.DropShadow";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ElasticEasingFunction> = L"Microsoft.UI.Composition.ElasticEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ExponentialEasingFunction> = L"Microsoft.UI.Composition.ExponentialEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ExpressionAnimation> = L"Microsoft.UI.Composition.ExpressionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ImplicitAnimationCollection> = L"Microsoft.UI.Composition.ImplicitAnimationCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::InitialValueExpressionCollection> = L"Microsoft.UI.Composition.InitialValueExpressionCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::InsetClip> = L"Microsoft.UI.Composition.InsetClip";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::KeyFrameAnimation> = L"Microsoft.UI.Composition.KeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::LayerVisual> = L"Microsoft.UI.Composition.LayerVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::LinearEasingFunction> = L"Microsoft.UI.Composition.LinearEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::NaturalMotionAnimation> = L"Microsoft.UI.Composition.NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::PathKeyFrameAnimation> = L"Microsoft.UI.Composition.PathKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::PointLight> = L"Microsoft.UI.Composition.PointLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::PowerEasingFunction> = L"Microsoft.UI.Composition.PowerEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::QuaternionKeyFrameAnimation> = L"Microsoft.UI.Composition.QuaternionKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::RectangleClip> = L"Microsoft.UI.Composition.RectangleClip";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::RedirectVisual> = L"Microsoft.UI.Composition.RedirectVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::RenderingDeviceReplacedEventArgs> = L"Microsoft.UI.Composition.RenderingDeviceReplacedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ScalarKeyFrameAnimation> = L"Microsoft.UI.Composition.ScalarKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ScalarNaturalMotionAnimation> = L"Microsoft.UI.Composition.ScalarNaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ShapeVisual> = L"Microsoft.UI.Composition.ShapeVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::SineEasingFunction> = L"Microsoft.UI.Composition.SineEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::SpotLight> = L"Microsoft.UI.Composition.SpotLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::SpringScalarNaturalMotionAnimation> = L"Microsoft.UI.Composition.SpringScalarNaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::SpringVector2NaturalMotionAnimation> = L"Microsoft.UI.Composition.SpringVector2NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::SpringVector3NaturalMotionAnimation> = L"Microsoft.UI.Composition.SpringVector3NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::SpriteVisual> = L"Microsoft.UI.Composition.SpriteVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::StepEasingFunction> = L"Microsoft.UI.Composition.StepEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::Vector2KeyFrameAnimation> = L"Microsoft.UI.Composition.Vector2KeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::Vector2NaturalMotionAnimation> = L"Microsoft.UI.Composition.Vector2NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::Vector3KeyFrameAnimation> = L"Microsoft.UI.Composition.Vector3KeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::Vector3NaturalMotionAnimation> = L"Microsoft.UI.Composition.Vector3NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::Vector4KeyFrameAnimation> = L"Microsoft.UI.Composition.Vector4KeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::Visual> = L"Microsoft.UI.Composition.Visual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::VisualCollection> = L"Microsoft.UI.Composition.VisualCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::VisualUnorderedCollection> = L"Microsoft.UI.Composition.VisualUnorderedCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::AnimationControllerProgressBehavior> = L"Microsoft.UI.Composition.AnimationControllerProgressBehavior";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::AnimationDelayBehavior> = L"Microsoft.UI.Composition.AnimationDelayBehavior";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::AnimationDirection> = L"Microsoft.UI.Composition.AnimationDirection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::AnimationIterationBehavior> = L"Microsoft.UI.Composition.AnimationIterationBehavior";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::AnimationPropertyAccessMode> = L"Microsoft.UI.Composition.AnimationPropertyAccessMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::AnimationStopBehavior> = L"Microsoft.UI.Composition.AnimationStopBehavior";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionBackfaceVisibility> = L"Microsoft.UI.Composition.CompositionBackfaceVisibility";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionBatchTypes> = L"Microsoft.UI.Composition.CompositionBatchTypes";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionBitmapInterpolationMode> = L"Microsoft.UI.Composition.CompositionBitmapInterpolationMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionBorderMode> = L"Microsoft.UI.Composition.CompositionBorderMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionColorSpace> = L"Microsoft.UI.Composition.CompositionColorSpace";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionCompositeMode> = L"Microsoft.UI.Composition.CompositionCompositeMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionDropShadowSourcePolicy> = L"Microsoft.UI.Composition.CompositionDropShadowSourcePolicy";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionEasingFunctionMode> = L"Microsoft.UI.Composition.CompositionEasingFunctionMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionEffectFactoryLoadStatus> = L"Microsoft.UI.Composition.CompositionEffectFactoryLoadStatus";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionGetValueStatus> = L"Microsoft.UI.Composition.CompositionGetValueStatus";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionGradientExtendMode> = L"Microsoft.UI.Composition.CompositionGradientExtendMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionMappingMode> = L"Microsoft.UI.Composition.CompositionMappingMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionStretch> = L"Microsoft.UI.Composition.CompositionStretch";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionStrokeCap> = L"Microsoft.UI.Composition.CompositionStrokeCap";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::CompositionStrokeLineJoin> = L"Microsoft.UI.Composition.CompositionStrokeLineJoin";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IAmbientLight> = L"Microsoft.UI.Composition.IAmbientLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IAmbientLight2> = L"Microsoft.UI.Composition.IAmbientLight2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IAnimationController> = L"Microsoft.UI.Composition.IAnimationController";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IAnimationControllerStatics> = L"Microsoft.UI.Composition.IAnimationControllerStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IAnimationObject> = L"Microsoft.UI.Composition.IAnimationObject";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo> = L"Microsoft.UI.Composition.IAnimationPropertyInfo";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo2> = L"Microsoft.UI.Composition.IAnimationPropertyInfo2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IBackEasingFunction> = L"Microsoft.UI.Composition.IBackEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IBooleanKeyFrameAnimation> = L"Microsoft.UI.Composition.IBooleanKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IBounceEasingFunction> = L"Microsoft.UI.Composition.IBounceEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IBounceScalarNaturalMotionAnimation> = L"Microsoft.UI.Composition.IBounceScalarNaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IBounceVector2NaturalMotionAnimation> = L"Microsoft.UI.Composition.IBounceVector2NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IBounceVector3NaturalMotionAnimation> = L"Microsoft.UI.Composition.IBounceVector3NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICircleEasingFunction> = L"Microsoft.UI.Composition.ICircleEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IColorKeyFrameAnimation> = L"Microsoft.UI.Composition.IColorKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionAnimation> = L"Microsoft.UI.Composition.ICompositionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionAnimation2> = L"Microsoft.UI.Composition.ICompositionAnimation2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionAnimation3> = L"Microsoft.UI.Composition.ICompositionAnimation3";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionAnimation4> = L"Microsoft.UI.Composition.ICompositionAnimation4";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionAnimationBase> = L"Microsoft.UI.Composition.ICompositionAnimationBase";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionAnimationFactory> = L"Microsoft.UI.Composition.ICompositionAnimationFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionAnimationGroup> = L"Microsoft.UI.Composition.ICompositionAnimationGroup";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionApiInformationStatics> = L"Microsoft.UI.Composition.ICompositionApiInformationStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionBackdropBrush> = L"Microsoft.UI.Composition.ICompositionBackdropBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionBatchCompletedEventArgs> = L"Microsoft.UI.Composition.ICompositionBatchCompletedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionBrush> = L"Microsoft.UI.Composition.ICompositionBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionBrushFactory> = L"Microsoft.UI.Composition.ICompositionBrushFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionCapabilities> = L"Microsoft.UI.Composition.ICompositionCapabilities";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionClip> = L"Microsoft.UI.Composition.ICompositionClip";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionClip2> = L"Microsoft.UI.Composition.ICompositionClip2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionClipFactory> = L"Microsoft.UI.Composition.ICompositionClipFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionColorBrush> = L"Microsoft.UI.Composition.ICompositionColorBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionColorGradientStop> = L"Microsoft.UI.Composition.ICompositionColorGradientStop";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionColorGradientStopCollection> = L"Microsoft.UI.Composition.ICompositionColorGradientStopCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionCommitBatch> = L"Microsoft.UI.Composition.ICompositionCommitBatch";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionContainerShape> = L"Microsoft.UI.Composition.ICompositionContainerShape";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface> = L"Microsoft.UI.Composition.ICompositionDrawingSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface2> = L"Microsoft.UI.Composition.ICompositionDrawingSurface2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionDrawingSurfaceFactory> = L"Microsoft.UI.Composition.ICompositionDrawingSurfaceFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionEasingFunction> = L"Microsoft.UI.Composition.ICompositionEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionFactory> = L"Microsoft.UI.Composition.ICompositionEasingFunctionFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionStatics> = L"Microsoft.UI.Composition.ICompositionEasingFunctionStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionEffectBrush> = L"Microsoft.UI.Composition.ICompositionEffectBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionEffectFactory> = L"Microsoft.UI.Composition.ICompositionEffectFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameter> = L"Microsoft.UI.Composition.ICompositionEffectSourceParameter";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameterFactory> = L"Microsoft.UI.Composition.ICompositionEffectSourceParameterFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionEllipseGeometry> = L"Microsoft.UI.Composition.ICompositionEllipseGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGeometricClip> = L"Microsoft.UI.Composition.ICompositionGeometricClip";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGeometry> = L"Microsoft.UI.Composition.ICompositionGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGeometryFactory> = L"Microsoft.UI.Composition.ICompositionGeometryFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGradientBrush> = L"Microsoft.UI.Composition.ICompositionGradientBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGradientBrush2> = L"Microsoft.UI.Composition.ICompositionGradientBrush2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGradientBrushFactory> = L"Microsoft.UI.Composition.ICompositionGradientBrushFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice> = L"Microsoft.UI.Composition.ICompositionGraphicsDevice";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice2> = L"Microsoft.UI.Composition.ICompositionGraphicsDevice2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice3> = L"Microsoft.UI.Composition.ICompositionGraphicsDevice3";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice4> = L"Microsoft.UI.Composition.ICompositionGraphicsDevice4";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionLight> = L"Microsoft.UI.Composition.ICompositionLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionLight2> = L"Microsoft.UI.Composition.ICompositionLight2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionLight3> = L"Microsoft.UI.Composition.ICompositionLight3";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionLightFactory> = L"Microsoft.UI.Composition.ICompositionLightFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionLineGeometry> = L"Microsoft.UI.Composition.ICompositionLineGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionLinearGradientBrush> = L"Microsoft.UI.Composition.ICompositionLinearGradientBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionMaskBrush> = L"Microsoft.UI.Composition.ICompositionMaskBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionMipmapSurface> = L"Microsoft.UI.Composition.ICompositionMipmapSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionNineGridBrush> = L"Microsoft.UI.Composition.ICompositionNineGridBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionObject> = L"Microsoft.UI.Composition.ICompositionObject";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionObject2> = L"Microsoft.UI.Composition.ICompositionObject2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionObject3> = L"Microsoft.UI.Composition.ICompositionObject3";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionObject4> = L"Microsoft.UI.Composition.ICompositionObject4";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionObject5> = L"Microsoft.UI.Composition.ICompositionObject5";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionObjectFactory> = L"Microsoft.UI.Composition.ICompositionObjectFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionObjectStatics> = L"Microsoft.UI.Composition.ICompositionObjectStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionPath> = L"Microsoft.UI.Composition.ICompositionPath";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionPathFactory> = L"Microsoft.UI.Composition.ICompositionPathFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionPathGeometry> = L"Microsoft.UI.Composition.ICompositionPathGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadow> = L"Microsoft.UI.Composition.ICompositionProjectedShadow";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCaster> = L"Microsoft.UI.Composition.ICompositionProjectedShadowCaster";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollection> = L"Microsoft.UI.Composition.ICompositionProjectedShadowCasterCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollectionStatics> = L"Microsoft.UI.Composition.ICompositionProjectedShadowCasterCollectionStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiver> = L"Microsoft.UI.Composition.ICompositionProjectedShadowReceiver";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiverUnorderedCollection> = L"Microsoft.UI.Composition.ICompositionProjectedShadowReceiverUnorderedCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionPropertySet> = L"Microsoft.UI.Composition.ICompositionPropertySet";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionPropertySet2> = L"Microsoft.UI.Composition.ICompositionPropertySet2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionRadialGradientBrush> = L"Microsoft.UI.Composition.ICompositionRadialGradientBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionRectangleGeometry> = L"Microsoft.UI.Composition.ICompositionRectangleGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionRoundedRectangleGeometry> = L"Microsoft.UI.Composition.ICompositionRoundedRectangleGeometry";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionScopedBatch> = L"Microsoft.UI.Composition.ICompositionScopedBatch";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionShadow> = L"Microsoft.UI.Composition.ICompositionShadow";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionShadowFactory> = L"Microsoft.UI.Composition.ICompositionShadowFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionShape> = L"Microsoft.UI.Composition.ICompositionShape";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionShapeFactory> = L"Microsoft.UI.Composition.ICompositionShapeFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionSpriteShape> = L"Microsoft.UI.Composition.ICompositionSpriteShape";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionSupportsSystemBackdrop> = L"Microsoft.UI.Composition.ICompositionSupportsSystemBackdrop";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionSurface> = L"Microsoft.UI.Composition.ICompositionSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush> = L"Microsoft.UI.Composition.ICompositionSurfaceBrush";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush2> = L"Microsoft.UI.Composition.ICompositionSurfaceBrush2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush3> = L"Microsoft.UI.Composition.ICompositionSurfaceBrush3";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionSurfaceFacade> = L"Microsoft.UI.Composition.ICompositionSurfaceFacade";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionTransform> = L"Microsoft.UI.Composition.ICompositionTransform";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionTransformFactory> = L"Microsoft.UI.Composition.ICompositionTransformFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionViewBox> = L"Microsoft.UI.Composition.ICompositionViewBox";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurface> = L"Microsoft.UI.Composition.ICompositionVirtualDrawingSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurfaceFactory> = L"Microsoft.UI.Composition.ICompositionVirtualDrawingSurfaceFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositionVisualSurface> = L"Microsoft.UI.Composition.ICompositionVisualSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositor> = L"Microsoft.UI.Composition.ICompositor";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositor2> = L"Microsoft.UI.Composition.ICompositor2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositor4> = L"Microsoft.UI.Composition.ICompositor4";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositor5> = L"Microsoft.UI.Composition.ICompositor5";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositor6> = L"Microsoft.UI.Composition.ICompositor6";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositor7> = L"Microsoft.UI.Composition.ICompositor7";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositor8> = L"Microsoft.UI.Composition.ICompositor8";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositorStatics> = L"Microsoft.UI.Composition.ICompositorStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositorWithProjectedShadow> = L"Microsoft.UI.Composition.ICompositorWithProjectedShadow";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositorWithRadialGradient> = L"Microsoft.UI.Composition.ICompositorWithRadialGradient";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICompositorWithVisualSurface> = L"Microsoft.UI.Composition.ICompositorWithVisualSurface";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IContainerVisual> = L"Microsoft.UI.Composition.IContainerVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IContainerVisualFactory> = L"Microsoft.UI.Composition.IContainerVisualFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ICubicBezierEasingFunction> = L"Microsoft.UI.Composition.ICubicBezierEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IDistantLight> = L"Microsoft.UI.Composition.IDistantLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IDistantLight2> = L"Microsoft.UI.Composition.IDistantLight2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IDropShadow> = L"Microsoft.UI.Composition.IDropShadow";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IDropShadow2> = L"Microsoft.UI.Composition.IDropShadow2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IElasticEasingFunction> = L"Microsoft.UI.Composition.IElasticEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IExponentialEasingFunction> = L"Microsoft.UI.Composition.IExponentialEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IExpressionAnimation> = L"Microsoft.UI.Composition.IExpressionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IImplicitAnimationCollection> = L"Microsoft.UI.Composition.IImplicitAnimationCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IInsetClip> = L"Microsoft.UI.Composition.IInsetClip";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IKeyFrameAnimation> = L"Microsoft.UI.Composition.IKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IKeyFrameAnimation2> = L"Microsoft.UI.Composition.IKeyFrameAnimation2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IKeyFrameAnimation3> = L"Microsoft.UI.Composition.IKeyFrameAnimation3";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IKeyFrameAnimationFactory> = L"Microsoft.UI.Composition.IKeyFrameAnimationFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ILayerVisual> = L"Microsoft.UI.Composition.ILayerVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ILayerVisual2> = L"Microsoft.UI.Composition.ILayerVisual2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ILinearEasingFunction> = L"Microsoft.UI.Composition.ILinearEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::INaturalMotionAnimation> = L"Microsoft.UI.Composition.INaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::INaturalMotionAnimationFactory> = L"Microsoft.UI.Composition.INaturalMotionAnimationFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IPathKeyFrameAnimation> = L"Microsoft.UI.Composition.IPathKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IPointLight> = L"Microsoft.UI.Composition.IPointLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IPointLight2> = L"Microsoft.UI.Composition.IPointLight2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IPointLight3> = L"Microsoft.UI.Composition.IPointLight3";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IPowerEasingFunction> = L"Microsoft.UI.Composition.IPowerEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IQuaternionKeyFrameAnimation> = L"Microsoft.UI.Composition.IQuaternionKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IRectangleClip> = L"Microsoft.UI.Composition.IRectangleClip";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IRedirectVisual> = L"Microsoft.UI.Composition.IRedirectVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IRenderingDeviceReplacedEventArgs> = L"Microsoft.UI.Composition.IRenderingDeviceReplacedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IScalarKeyFrameAnimation> = L"Microsoft.UI.Composition.IScalarKeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimation> = L"Microsoft.UI.Composition.IScalarNaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimationFactory> = L"Microsoft.UI.Composition.IScalarNaturalMotionAnimationFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IShapeVisual> = L"Microsoft.UI.Composition.IShapeVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ISineEasingFunction> = L"Microsoft.UI.Composition.ISineEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ISpotLight> = L"Microsoft.UI.Composition.ISpotLight";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ISpotLight2> = L"Microsoft.UI.Composition.ISpotLight2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ISpotLight3> = L"Microsoft.UI.Composition.ISpotLight3";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ISpringScalarNaturalMotionAnimation> = L"Microsoft.UI.Composition.ISpringScalarNaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ISpringVector2NaturalMotionAnimation> = L"Microsoft.UI.Composition.ISpringVector2NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ISpringVector3NaturalMotionAnimation> = L"Microsoft.UI.Composition.ISpringVector3NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ISpriteVisual> = L"Microsoft.UI.Composition.ISpriteVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::ISpriteVisual2> = L"Microsoft.UI.Composition.ISpriteVisual2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IStepEasingFunction> = L"Microsoft.UI.Composition.IStepEasingFunction";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVector2KeyFrameAnimation> = L"Microsoft.UI.Composition.IVector2KeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimation> = L"Microsoft.UI.Composition.IVector2NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimationFactory> = L"Microsoft.UI.Composition.IVector2NaturalMotionAnimationFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVector3KeyFrameAnimation> = L"Microsoft.UI.Composition.IVector3KeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimation> = L"Microsoft.UI.Composition.IVector3NaturalMotionAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimationFactory> = L"Microsoft.UI.Composition.IVector3NaturalMotionAnimationFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVector4KeyFrameAnimation> = L"Microsoft.UI.Composition.IVector4KeyFrameAnimation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVisual> = L"Microsoft.UI.Composition.IVisual";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVisual2> = L"Microsoft.UI.Composition.IVisual2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVisual3> = L"Microsoft.UI.Composition.IVisual3";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVisual4> = L"Microsoft.UI.Composition.IVisual4";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVisualCollection> = L"Microsoft.UI.Composition.IVisualCollection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVisualElement> = L"Microsoft.UI.Composition.IVisualElement";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVisualElement2> = L"Microsoft.UI.Composition.IVisualElement2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVisualFactory> = L"Microsoft.UI.Composition.IVisualFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Composition::IVisualUnorderedCollection> = L"Microsoft.UI.Composition.IVisualUnorderedCollection";
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IAmbientLight>{ 0x4540525E,0xB70D,0x5A14,{ 0xBB,0xFA,0x63,0xBE,0xF4,0x23,0x13,0xC7 } }; // 4540525E-B70D-5A14-BBFA-63BEF42313C7
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IAmbientLight2>{ 0x3356F963,0x040C,0x54D4,{ 0x9D,0xFC,0xB6,0x1C,0x51,0xAA,0xAD,0xD1 } }; // 3356F963-040C-54D4-9DFC-B61C51AAADD1
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IAnimationController>{ 0xBD0F88A8,0xA415,0x5322,{ 0x8C,0x3D,0x1A,0x6D,0x91,0x92,0x75,0x4F } }; // BD0F88A8-A415-5322-8C3D-1A6D9192754F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IAnimationControllerStatics>{ 0xB63B0FB6,0x286B,0x57AF,{ 0xB0,0x96,0x16,0x06,0x6D,0x43,0xDC,0x00 } }; // B63B0FB6-286B-57AF-B096-16066D43DC00
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IAnimationObject>{ 0x8F56119D,0xB96D,0x58D0,{ 0x99,0x16,0xD1,0xC5,0xE3,0x90,0xF8,0x90 } }; // 8F56119D-B96D-58D0-9916-D1C5E390F890
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo>{ 0x3D721A2B,0x9CCD,0x57BD,{ 0xB6,0xC2,0xCE,0x9E,0x04,0xAE,0x36,0x06 } }; // 3D721A2B-9CCD-57BD-B6C2-CE9E04AE3606
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo2>{ 0xED14FB09,0xDE28,0x540D,{ 0x93,0x11,0x80,0xCF,0xDC,0xC9,0x73,0x38 } }; // ED14FB09-DE28-540D-9311-80CFDCC97338
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IBackEasingFunction>{ 0x27C75BAB,0x317A,0x5362,{ 0xBF,0x25,0xFF,0xFB,0xB9,0x8A,0x51,0xB9 } }; // 27C75BAB-317A-5362-BF25-FFFBB98A51B9
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IBooleanKeyFrameAnimation>{ 0x7FE485E9,0xE874,0x5FF3,{ 0x8D,0xDC,0x82,0x6C,0x38,0x18,0xBF,0xC3 } }; // 7FE485E9-E874-5FF3-8DDC-826C3818BFC3
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IBounceEasingFunction>{ 0xFA11F3C0,0x697B,0x562F,{ 0xAF,0x46,0xC6,0xAF,0x66,0x6B,0x6E,0xC4 } }; // FA11F3C0-697B-562F-AF46-C6AF666B6EC4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IBounceScalarNaturalMotionAnimation>{ 0x1C0C4B76,0xC4D6,0x5DD9,{ 0x8D,0xD6,0xDB,0xE3,0x5C,0x7B,0x7E,0x55 } }; // 1C0C4B76-C4D6-5DD9-8DD6-DBE35C7B7E55
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IBounceVector2NaturalMotionAnimation>{ 0xEC528D1F,0x22E2,0x573E,{ 0xAB,0x87,0x75,0x70,0x71,0xE5,0x00,0x12 } }; // EC528D1F-22E2-573E-AB87-757071E50012
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IBounceVector3NaturalMotionAnimation>{ 0xE3E2EE98,0x1211,0x586D,{ 0x8A,0x6D,0xFE,0xA5,0xEF,0xC3,0x95,0x7F } }; // E3E2EE98-1211-586D-8A6D-FEA5EFC3957F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICircleEasingFunction>{ 0x414B172C,0xBF27,0x5EAD,{ 0x93,0xE0,0x35,0x91,0x53,0x22,0xDB,0x2C } }; // 414B172C-BF27-5EAD-93E0-35915322DB2C
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IColorKeyFrameAnimation>{ 0xF0237928,0x353C,0x5867,{ 0xBE,0x93,0x71,0x54,0x7E,0x98,0x9F,0x44 } }; // F0237928-353C-5867-BE93-71547E989F44
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionAnimation>{ 0xA829CCC8,0x6FDE,0x5B90,{ 0xAD,0x37,0xEF,0xD3,0x07,0xE1,0xB6,0x31 } }; // A829CCC8-6FDE-5B90-AD37-EFD307E1B631
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionAnimation2>{ 0x0926EB58,0x8965,0x5C74,{ 0xBD,0xAC,0x85,0x2E,0xBB,0x5E,0x85,0x42 } }; // 0926EB58-8965-5C74-BDAC-852EBB5E8542
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionAnimation3>{ 0x60063F53,0x4167,0x5914,{ 0xA2,0xF1,0x9E,0xFC,0xC2,0xF8,0x6C,0x76 } }; // 60063F53-4167-5914-A2F1-9EFCC2F86C76
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionAnimation4>{ 0xC4101447,0xDFE4,0x597F,{ 0xB5,0xBC,0x96,0x44,0x3F,0x5D,0x18,0xA1 } }; // C4101447-DFE4-597F-B5BC-96443F5D18A1
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionAnimationBase>{ 0xA77C0E5A,0xF059,0x4E85,{ 0xBC,0xEF,0xC0,0x68,0x69,0x4C,0xEC,0x78 } }; // A77C0E5A-F059-4E85-BCEF-C068694CEC78
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionAnimationFactory>{ 0x2ED278CA,0x4CCA,0x5F7F,{ 0x8D,0x47,0xF9,0x30,0x55,0x2A,0x77,0x69 } }; // 2ED278CA-4CCA-5F7F-8D47-F930552A7769
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionAnimationGroup>{ 0xA51CDCAC,0xB972,0x5AE7,{ 0x81,0xD0,0x9D,0x91,0xC7,0x1E,0xCB,0x7A } }; // A51CDCAC-B972-5AE7-81D0-9D91C71ECB7A
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionApiInformationStatics>{ 0x85260ED3,0x365B,0x5E70,{ 0xB7,0x9A,0xF9,0xF1,0xD1,0x0F,0xA4,0xB5 } }; // 85260ED3-365B-5E70-B79A-F9F1D10FA4B5
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionBackdropBrush>{ 0x6C866BB3,0x172A,0x570C,{ 0x82,0xAC,0xBF,0x98,0x48,0xD9,0x9A,0x59 } }; // 6C866BB3-172A-570C-82AC-BF9848D99A59
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionBatchCompletedEventArgs>{ 0xAC400334,0x4358,0x5FB0,{ 0xBF,0xC3,0x11,0x7F,0xE5,0x81,0x99,0x8F } }; // AC400334-4358-5FB0-BFC3-117FE581998F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionBrush>{ 0x483924E7,0x99A5,0x5377,{ 0x96,0x8B,0xDE,0xC6,0xD4,0x0B,0xBC,0xCD } }; // 483924E7-99A5-5377-968B-DEC6D40BBCCD
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionBrushFactory>{ 0xABF2B354,0x7130,0x53D9,{ 0x83,0x24,0x36,0x5D,0x7E,0x02,0xED,0xE7 } }; // ABF2B354-7130-53D9-8324-365D7E02EDE7
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionCapabilities>{ 0x7689BF12,0x75C0,0x52EA,{ 0x81,0xCB,0x46,0x3E,0xD1,0xC1,0x6C,0x45 } }; // 7689BF12-75C0-52EA-81CB-463ED1C16C45
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionClip>{ 0xB66B55CB,0xB5A5,0x5BEE,{ 0x89,0x72,0xAE,0x78,0x23,0x3C,0xB3,0x4C } }; // B66B55CB-B5A5-5BEE-8972-AE78233CB34C
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionClip2>{ 0xCDF6BF80,0xAFD7,0x57DC,{ 0x81,0x48,0x6C,0xCB,0xBB,0x5D,0x78,0xBB } }; // CDF6BF80-AFD7-57DC-8148-6CCBBB5D78BB
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionClipFactory>{ 0x611DEC65,0xD302,0x52BC,{ 0x92,0xAB,0xA2,0x95,0xBD,0x14,0x1A,0xE4 } }; // 611DEC65-D302-52BC-92AB-A295BD141AE4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionColorBrush>{ 0x3F8FFB69,0x3E71,0x55A7,{ 0x8E,0x79,0xF2,0x7A,0x21,0x4C,0x56,0xAE } }; // 3F8FFB69-3E71-55A7-8E79-F27A214C56AE
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionColorGradientStop>{ 0x868030D8,0xC5C0,0x5DD8,{ 0xA7,0x65,0xE3,0x2C,0xD3,0x49,0x7A,0xA9 } }; // 868030D8-C5C0-5DD8-A765-E32CD3497AA9
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionColorGradientStopCollection>{ 0x4794CB29,0xCE9D,0x5837,{ 0x9F,0xC9,0x84,0x7D,0xF3,0xE1,0x97,0xDE } }; // 4794CB29-CE9D-5837-9FC9-847DF3E197DE
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionCommitBatch>{ 0xC4550FA8,0xA7F2,0x5259,{ 0xBF,0x74,0x33,0xB2,0xF5,0x24,0x0A,0x28 } }; // C4550FA8-A7F2-5259-BF74-33B2F5240A28
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionContainerShape>{ 0x064AABD5,0x2DAB,0x52D3,{ 0x82,0x4B,0xC7,0x24,0x56,0x54,0x0F,0x29 } }; // 064AABD5-2DAB-52D3-824B-C72456540F29
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface>{ 0x216CAB97,0xA2EE,0x5A29,{ 0xAD,0x6B,0x0B,0xC2,0xDF,0x4A,0x15,0x04 } }; // 216CAB97-A2EE-5A29-AD6B-0BC2DF4A1504
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface2>{ 0x6BE6F652,0xBEC8,0x5ADF,{ 0xA6,0xAF,0x5A,0xCF,0xC0,0x0A,0x96,0x8E } }; // 6BE6F652-BEC8-5ADF-A6AF-5ACFC00A968E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionDrawingSurfaceFactory>{ 0x4791E19A,0xC83B,0x58B0,{ 0xAC,0x86,0xDF,0xC5,0x84,0x94,0xF5,0xF9 } }; // 4791E19A-C83B-58B0-AC86-DFC58494F5F9
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionEasingFunction>{ 0x8E1ECD0D,0x57D8,0x5BC9,{ 0x9B,0xCD,0xE4,0x3D,0x0D,0xD7,0x33,0xC4 } }; // 8E1ECD0D-57D8-5BC9-9BCD-E43D0DD733C4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionFactory>{ 0x7D7D32C3,0x574B,0x5620,{ 0x99,0x02,0xDB,0x42,0x68,0x51,0x80,0x2F } }; // 7D7D32C3-574B-5620-9902-DB426851802F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionStatics>{ 0x9D4B87FF,0x6DCA,0x5CE2,{ 0xB6,0x9C,0xE5,0x27,0x05,0xB0,0xFE,0xF4 } }; // 9D4B87FF-6DCA-5CE2-B69C-E52705B0FEF4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionEffectBrush>{ 0x62E0BBAB,0x1F45,0x5A44,{ 0x9D,0xDF,0xF0,0xC3,0x8A,0x02,0xED,0x85 } }; // 62E0BBAB-1F45-5A44-9DDF-F0C38A02ED85
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionEffectFactory>{ 0xC50F407A,0x0231,0x5ED2,{ 0xB7,0xA7,0xCA,0x66,0xD3,0xE1,0x4B,0x3B } }; // C50F407A-0231-5ED2-B7A7-CA66D3E14B3B
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameter>{ 0xBECE3367,0x5704,0x59F7,{ 0xBE,0x8C,0xD6,0x29,0x3A,0xF9,0xC9,0x5F } }; // BECE3367-5704-59F7-BE8C-D6293AF9C95F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameterFactory>{ 0x26185954,0x4489,0x5D0E,{ 0xAE,0x4D,0x7B,0xC4,0xBB,0xBC,0x61,0x61 } }; // 26185954-4489-5D0E-AE4D-7BC4BBBC6161
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionEllipseGeometry>{ 0xF2A21042,0x7A57,0x58C1,{ 0x8B,0x47,0x8B,0xC8,0xB2,0x1D,0x3A,0xA0 } }; // F2A21042-7A57-58C1-8B47-8BC8B21D3AA0
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGeometricClip>{ 0xE3C0A8C5,0x5297,0x5D69,{ 0x8B,0x91,0xF5,0x33,0x0B,0xB1,0xCB,0x27 } }; // E3C0A8C5-5297-5D69-8B91-F5330BB1CB27
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGeometry>{ 0x4E40BDB2,0x450B,0x5A81,{ 0x9E,0x9B,0x14,0x94,0x17,0x98,0x0C,0xC4 } }; // 4E40BDB2-450B-5A81-9E9B-149417980CC4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGeometryFactory>{ 0xB2FB802B,0xC691,0x5554,{ 0x83,0x12,0x9C,0x6D,0x35,0x8D,0x6B,0x9E } }; // B2FB802B-C691-5554-8312-9C6D358D6B9E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGradientBrush>{ 0x9165D1FB,0xC738,0x5F44,{ 0xAD,0xDC,0x30,0x9E,0xE0,0x71,0xD5,0x88 } }; // 9165D1FB-C738-5F44-ADDC-309EE071D588
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGradientBrush2>{ 0x03E9EDF3,0xEE3D,0x58FC,{ 0x8C,0x0B,0x95,0xE4,0xB6,0x06,0x0A,0x94 } }; // 03E9EDF3-EE3D-58FC-8C0B-95E4B6060A94
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGradientBrushFactory>{ 0xB043B155,0x4B40,0x590D,{ 0xA0,0xD9,0xF8,0xC1,0xA7,0xE0,0xC8,0x8F } }; // B043B155-4B40-590D-A0D9-F8C1A7E0C88F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice>{ 0x3D47E3F5,0xF76C,0x5F1F,{ 0x88,0xC0,0x54,0xA5,0xF2,0xA0,0x90,0xD6 } }; // 3D47E3F5-F76C-5F1F-88C0-54A5F2A090D6
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice2>{ 0xFFD56707,0x1C7A,0x5DA0,{ 0xAA,0x1A,0x49,0xCB,0x93,0x5B,0x5D,0xCA } }; // FFD56707-1C7A-5DA0-AA1A-49CB935B5DCA
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice3>{ 0xFBBEF487,0xD5A4,0x5DB2,{ 0xBF,0x3E,0x9F,0x48,0x8E,0x65,0x9D,0x11 } }; // FBBEF487-D5A4-5DB2-BF3E-9F488E659D11
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice4>{ 0x2B295C04,0x7B2E,0x5B0E,{ 0x97,0x62,0x29,0x92,0x31,0x3B,0x70,0x0C } }; // 2B295C04-7B2E-5B0E-9762-2992313B700C
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionLight>{ 0x6D633E77,0xA6B8,0x5A2D,{ 0x82,0x35,0xE0,0xC3,0x80,0xC3,0xB4,0x7B } }; // 6D633E77-A6B8-5A2D-8235-E0C380C3B47B
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionLight2>{ 0x0BB940A4,0x05EF,0x5920,{ 0xBA,0xE1,0x91,0x8B,0x36,0xD4,0x43,0x80 } }; // 0BB940A4-05EF-5920-BAE1-918B36D44380
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionLight3>{ 0x95CE4859,0xDD55,0x5C38,{ 0xA3,0xEB,0x13,0xD0,0x53,0xCE,0xBB,0x1E } }; // 95CE4859-DD55-5C38-A3EB-13D053CEBB1E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionLightFactory>{ 0xCB29CAED,0x9245,0x51A6,{ 0xBA,0x56,0xAD,0xDB,0xAE,0xFA,0x54,0xCC } }; // CB29CAED-9245-51A6-BA56-ADDBAEFA54CC
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionLineGeometry>{ 0x489F9382,0xC186,0x5936,{ 0x89,0x46,0xC4,0xF9,0x27,0xE8,0x44,0xAA } }; // 489F9382-C186-5936-8946-C4F927E844AA
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionLinearGradientBrush>{ 0xF726FB52,0x270C,0x58B1,{ 0xA9,0x02,0x89,0x57,0x67,0x72,0xDE,0xDC } }; // F726FB52-270C-58B1-A902-89576772DEDC
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionMaskBrush>{ 0xC9502786,0x65AA,0x5BE5,{ 0xA6,0x79,0xC3,0xB5,0xDB,0xFB,0x0D,0xC6 } }; // C9502786-65AA-5BE5-A679-C3B5DBFB0DC6
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionMipmapSurface>{ 0x681F1E47,0x6E43,0x5B55,{ 0xBE,0x3A,0xE5,0xC8,0x58,0xA2,0xD5,0xFA } }; // 681F1E47-6E43-5B55-BE3A-E5C858A2D5FA
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionNineGridBrush>{ 0xC77A3D21,0xC7EE,0x517A,{ 0x98,0xF4,0xAD,0x9A,0x72,0x02,0xBC,0x86 } }; // C77A3D21-C7EE-517A-98F4-AD9A7202BC86
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionObject>{ 0x0E583D49,0xFB5E,0x5481,{ 0xA4,0x26,0xD3,0xC4,0x1E,0x05,0x9A,0x5A } }; // 0E583D49-FB5E-5481-A426-D3C41E059A5A
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionObject2>{ 0xBCBBFEBF,0x799C,0x51CE,{ 0x9C,0x82,0xB6,0xE4,0x9E,0x7E,0x62,0xE1 } }; // BCBBFEBF-799C-51CE-9C82-B6E49E7E62E1
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionObject3>{ 0xD43C5CF1,0x47DF,0x52B8,{ 0xB4,0x09,0xD5,0x83,0x15,0x03,0x90,0x5E } }; // D43C5CF1-47DF-52B8-B409-D5831503905E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionObject4>{ 0x029AD57C,0x5497,0x51F3,{ 0x8B,0x40,0xE4,0xE2,0x35,0x99,0x2C,0x6F } }; // 029AD57C-5497-51F3-8B40-E4E235992C6F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionObject5>{ 0x85FD26D1,0xBB99,0x5392,{ 0x9D,0xCE,0xA0,0x5C,0xB8,0x14,0x58,0xA5 } }; // 85FD26D1-BB99-5392-9DCE-A05CB81458A5
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionObjectFactory>{ 0x6133C5F9,0xCD3B,0x56B2,{ 0x87,0x6F,0xEB,0x84,0x9D,0xB1,0x49,0x11 } }; // 6133C5F9-CD3B-56B2-876F-EB849DB14911
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionObjectStatics>{ 0xA091356C,0x38AE,0x514C,{ 0x9B,0x58,0xAD,0x5C,0x8C,0x79,0x36,0xAD } }; // A091356C-38AE-514C-9B58-AD5C8C7936AD
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionPath>{ 0x17C518C0,0xD7A2,0x54BE,{ 0xAC,0x7F,0xC4,0x08,0x56,0x2A,0x6A,0x20 } }; // 17C518C0-D7A2-54BE-AC7F-C408562A6A20
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionPathFactory>{ 0x87143312,0xD280,0x51D2,{ 0xB7,0x5B,0x5D,0x76,0xEA,0x86,0xC2,0x85 } }; // 87143312-D280-51D2-B75B-5D76EA86C285
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionPathGeometry>{ 0x0F6E6B82,0x060B,0x571E,{ 0xB8,0x49,0xAB,0x8E,0x0D,0x72,0x39,0x62 } }; // 0F6E6B82-060B-571E-B849-AB8E0D723962
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadow>{ 0xD400AB10,0x8B92,0x5ABB,{ 0x9E,0x23,0x80,0x79,0x74,0xFC,0x69,0x61 } }; // D400AB10-8B92-5ABB-9E23-807974FC6961
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCaster>{ 0x15A9F2D0,0x6BAE,0x521B,{ 0x90,0xC7,0xC7,0x50,0x0F,0x2B,0xF5,0x62 } }; // 15A9F2D0-6BAE-521B-90C7-C7500F2BF562
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollection>{ 0xB120BFDC,0x533C,0x57A9,{ 0xAE,0x16,0xD4,0x3B,0xA5,0x24,0x72,0xC4 } }; // B120BFDC-533C-57A9-AE16-D43BA52472C4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollectionStatics>{ 0x43A98014,0xB88B,0x5B2A,{ 0xB1,0xE2,0x5E,0x77,0x6A,0xB7,0x75,0x38 } }; // 43A98014-B88B-5B2A-B1E2-5E776AB77538
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiver>{ 0x29FE12B0,0xF1A0,0x50E1,{ 0xAF,0x28,0x2E,0x94,0x3B,0xC8,0x19,0xD6 } }; // 29FE12B0-F1A0-50E1-AF28-2E943BC819D6
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiverUnorderedCollection>{ 0x2D35F751,0xA1FA,0x5FFF,{ 0xB1,0x56,0x6D,0x8F,0xCD,0x83,0x62,0xED } }; // 2D35F751-A1FA-5FFF-B156-6D8FCD8362ED
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionPropertySet>{ 0x97F7A17B,0x97BE,0x5545,{ 0x9F,0x1C,0x0B,0x9D,0x44,0x57,0x7F,0x57 } }; // 97F7A17B-97BE-5545-9F1C-0B9D44577F57
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionPropertySet2>{ 0x3DB6D621,0x3497,0x55E4,{ 0x95,0xBF,0x8A,0xE5,0xE7,0xC3,0x4C,0x33 } }; // 3DB6D621-3497-55E4-95BF-8AE5E7C34C33
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionRadialGradientBrush>{ 0x17662F3F,0xD351,0x5435,{ 0xB3,0xB4,0xEC,0x26,0xCE,0xFE,0xCC,0xC5 } }; // 17662F3F-D351-5435-B3B4-EC26CEFECCC5
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionRectangleGeometry>{ 0xBD551FCF,0x2C7F,0x5125,{ 0xAC,0x44,0x50,0xA4,0xF1,0xD8,0xFA,0x76 } }; // BD551FCF-2C7F-5125-AC44-50A4F1D8FA76
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionRoundedRectangleGeometry>{ 0x02EAFC87,0x8D1F,0x5445,{ 0xA4,0x16,0xD8,0x1B,0xAE,0xE8,0xA7,0x50 } }; // 02EAFC87-8D1F-5445-A416-D81BAEE8A750
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionScopedBatch>{ 0xD31CA572,0x99CE,0x5969,{ 0xB0,0x42,0x6C,0x2D,0x33,0x0A,0x38,0x59 } }; // D31CA572-99CE-5969-B042-6C2D330A3859
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionShadow>{ 0x176B8BB5,0x4DAE,0x59B2,{ 0xB9,0xA0,0x24,0x99,0xB2,0x43,0x26,0x7C } }; // 176B8BB5-4DAE-59B2-B9A0-2499B243267C
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionShadowFactory>{ 0xFF27546D,0x9750,0x54AE,{ 0xAB,0x8C,0x12,0x6C,0xBE,0x91,0x58,0xC3 } }; // FF27546D-9750-54AE-AB8C-126CBE9158C3
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionShape>{ 0xED75D4D8,0x437F,0x5640,{ 0x97,0x20,0xFA,0xAE,0x35,0xCE,0x58,0x95 } }; // ED75D4D8-437F-5640-9720-FAAE35CE5895
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionShapeFactory>{ 0x7AA2B987,0x9CDD,0x5B6E,{ 0x8A,0xC1,0xE9,0x89,0xD7,0x8B,0x48,0x11 } }; // 7AA2B987-9CDD-5B6E-8AC1-E989D78B4811
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionSpriteShape>{ 0x982138F2,0x5781,0x509A,{ 0xBA,0x5D,0x11,0x2B,0xCB,0x0B,0x98,0xEF } }; // 982138F2-5781-509A-BA5D-112BCB0B98EF
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionSupportsSystemBackdrop>{ 0x397DAFE4,0xB6C2,0x5BB9,{ 0x95,0x1D,0xF5,0x70,0x7D,0xE8,0xB7,0xBC } }; // 397DAFE4-B6C2-5BB9-951D-F5707DE8B7BC
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionSurface>{ 0x9EC612C3,0xA5D2,0x4F97,{ 0x9D,0xF3,0x6B,0x49,0xCE,0x73,0x62,0x15 } }; // 9EC612C3-A5D2-4F97-9DF3-6B49CE736215
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush>{ 0x616BB5A5,0x0A33,0x512D,{ 0xB4,0xB1,0x3D,0x37,0x34,0xF0,0x4A,0xCA } }; // 616BB5A5-0A33-512D-B4B1-3D3734F04ACA
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush2>{ 0x9904B7E3,0x084B,0x58B5,{ 0x9A,0xE1,0x3A,0x20,0x40,0xDD,0x7A,0x22 } }; // 9904B7E3-084B-58B5-9AE1-3A2040DD7A22
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush3>{ 0x8AA74C78,0x680C,0x5791,{ 0xAB,0x07,0x92,0xDB,0x0F,0x37,0xE3,0x52 } }; // 8AA74C78-680C-5791-AB07-92DB0F37E352
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionSurfaceFacade>{ 0x88AC5DF6,0x377F,0x5CF7,{ 0xA0,0x2E,0xED,0x50,0x74,0xD3,0x04,0x52 } }; // 88AC5DF6-377F-5CF7-A02E-ED5074D30452
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionTransform>{ 0x670E1826,0x1932,0x51D0,{ 0xBB,0xB3,0x06,0x3B,0x4C,0xA9,0x4B,0x56 } }; // 670E1826-1932-51D0-BBB3-063B4CA94B56
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionTransformFactory>{ 0x78CC7BF2,0xCDC0,0x59D2,{ 0x9C,0x04,0x8D,0x20,0x8D,0xE7,0xEF,0x5E } }; // 78CC7BF2-CDC0-59D2-9C04-8D208DE7EF5E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionViewBox>{ 0x667E4071,0xADDD,0x5DED,{ 0xB6,0xC0,0x09,0xE0,0x3A,0x14,0xBE,0x7E } }; // 667E4071-ADDD-5DED-B6C0-09E03A14BE7E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurface>{ 0xD741B99D,0xE248,0x5BA7,{ 0xB7,0x28,0x8B,0xEE,0xA5,0x3F,0xE2,0x8E } }; // D741B99D-E248-5BA7-B728-8BEEA53FE28E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurfaceFactory>{ 0x85895891,0x3F06,0x52E2,{ 0xB5,0xEA,0xD1,0xFB,0x59,0x5F,0x65,0x74 } }; // 85895891-3F06-52E2-B5EA-D1FB595F6574
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositionVisualSurface>{ 0x49E3624B,0x4D2E,0x53E7,{ 0x9E,0x02,0xF6,0x48,0x31,0x68,0x11,0x34 } }; // 49E3624B-4D2E-53E7-9E02-F64831681134
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositor>{ 0x95213C13,0xC4CB,0x57DE,{ 0xB2,0x67,0xD2,0x1A,0xB9,0x01,0xAE,0x38 } }; // 95213C13-C4CB-57DE-B267-D21AB901AE38
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositor2>{ 0xA9FFEDAD,0x3982,0x576D,{ 0xA3,0x8A,0xC8,0x88,0xFF,0x60,0x58,0x19 } }; // A9FFEDAD-3982-576D-A38A-C888FF605819
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositor4>{ 0xEE444BCA,0x735C,0x5CF2,{ 0xB7,0x9D,0xA6,0xDD,0x46,0xC1,0x61,0x60 } }; // EE444BCA-735C-5CF2-B79D-A6DD46C16160
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositor5>{ 0xBB52D644,0xA030,0x5C19,{ 0xB8,0x83,0x57,0x7D,0xED,0x73,0x9A,0xE7 } }; // BB52D644-A030-5C19-B883-577DED739AE7
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositor6>{ 0x5FD20200,0xC188,0x5737,{ 0xB5,0x67,0x5E,0x61,0x74,0x1A,0xF1,0x9C } }; // 5FD20200-C188-5737-B567-5E61741AF19C
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositor7>{ 0x5358B81B,0x4799,0x5E7C,{ 0x90,0x6C,0xE3,0xDF,0x3B,0x2E,0x95,0xEB } }; // 5358B81B-4799-5E7C-906C-E3DF3B2E95EB
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositor8>{ 0x02F5C9EE,0xA3C0,0x577A,{ 0x9D,0x23,0x44,0x02,0x4C,0x8E,0xAC,0xDA } }; // 02F5C9EE-A3C0-577A-9D23-44024C8EACDA
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositorStatics>{ 0x6BAA947A,0xF103,0x55C6,{ 0x91,0xAD,0x3D,0x27,0x5B,0xEA,0x65,0xC4 } }; // 6BAA947A-F103-55C6-91AD-3D275BEA65C4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositorWithProjectedShadow>{ 0x60AB2BF2,0xB95C,0x5944,{ 0x8B,0x36,0xC9,0x77,0x3B,0x9F,0x52,0x56 } }; // 60AB2BF2-B95C-5944-8B36-C9773B9F5256
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositorWithRadialGradient>{ 0xFA4F8F7D,0x5CC7,0x5C9C,{ 0x88,0x3B,0xFE,0x87,0x8A,0x2F,0x3E,0x30 } }; // FA4F8F7D-5CC7-5C9C-883B-FE878A2F3E30
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICompositorWithVisualSurface>{ 0x5FCFE24A,0x690A,0x5378,{ 0xAC,0xEE,0x56,0x1E,0x84,0xBF,0xB9,0x82 } }; // 5FCFE24A-690A-5378-ACEE-561E84BFB982
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IContainerVisual>{ 0xC70DBCE1,0x2C2F,0x5D8E,{ 0x91,0xA4,0xAA,0xE1,0x12,0x1E,0x61,0x86 } }; // C70DBCE1-2C2F-5D8E-91A4-AAE1121E6186
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IContainerVisualFactory>{ 0x3FA45EEB,0xC6DD,0x5AFD,{ 0x97,0x1D,0xEA,0xAF,0x62,0x45,0xE7,0x16 } }; // 3FA45EEB-C6DD-5AFD-971D-EAAF6245E716
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ICubicBezierEasingFunction>{ 0x35E7FCDE,0xF9CE,0x590A,{ 0x8B,0x88,0x64,0xA8,0x2A,0x6B,0x4B,0x48 } }; // 35E7FCDE-F9CE-590A-8B88-64A82A6B4B48
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IDistantLight>{ 0x125EF556,0x56EE,0x5C60,{ 0xB9,0x44,0x57,0x19,0x28,0xCA,0x03,0xF5 } }; // 125EF556-56EE-5C60-B944-571928CA03F5
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IDistantLight2>{ 0x9F97BFEC,0xB6B9,0x51EE,{ 0x84,0x80,0xB5,0x46,0x46,0x8C,0x74,0x8F } }; // 9F97BFEC-B6B9-51EE-8480-B546468C748F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IDropShadow>{ 0x977095D2,0x265F,0x5F58,{ 0x97,0x89,0xCB,0x7F,0x85,0xE9,0x8C,0x9E } }; // 977095D2-265F-5F58-9789-CB7F85E98C9E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IDropShadow2>{ 0xCBC7C266,0x2D33,0x5711,{ 0xB3,0xB4,0x56,0x99,0x41,0x0B,0xEF,0x56 } }; // CBC7C266-2D33-5711-B3B4-5699410BEF56
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IElasticEasingFunction>{ 0xB952E12F,0x4A50,0x51A9,{ 0xA1,0x1A,0x23,0x85,0x5F,0x4A,0xAE,0x07 } }; // B952E12F-4A50-51A9-A11A-23855F4AAE07
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IExponentialEasingFunction>{ 0xDF29ECC1,0x3FFC,0x565F,{ 0x9D,0x6C,0x53,0x35,0x86,0x90,0x81,0x06 } }; // DF29ECC1-3FFC-565F-9D6C-533586908106
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IExpressionAnimation>{ 0x7FFF5826,0x1992,0x56C0,{ 0x90,0x60,0x5A,0xDE,0x56,0x1A,0x4F,0x2D } }; // 7FFF5826-1992-56C0-9060-5ADE561A4F2D
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IImplicitAnimationCollection>{ 0xC5C0689E,0xF5AE,0x5BED,{ 0x82,0x9B,0xC5,0x22,0xCD,0xA3,0x97,0x17 } }; // C5C0689E-F5AE-5BED-829B-C522CDA39717
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IInsetClip>{ 0xF9D99475,0x7B59,0x5B28,{ 0xA1,0xD2,0xB8,0x32,0xDA,0x69,0x88,0xC9 } }; // F9D99475-7B59-5B28-A1D2-B832DA6988C9
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IKeyFrameAnimation>{ 0x5A8F57F0,0xF059,0x5B47,{ 0xB3,0x08,0xC4,0xC8,0x0F,0xC7,0x12,0x48 } }; // 5A8F57F0-F059-5B47-B308-C4C80FC71248
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IKeyFrameAnimation2>{ 0x414692E5,0x8A7E,0x58EA,{ 0x83,0xE1,0x25,0xCE,0x47,0x5D,0x93,0x00 } }; // 414692E5-8A7E-58EA-83E1-25CE475D9300
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IKeyFrameAnimation3>{ 0x4F97E180,0x9BCB,0x5FC4,{ 0xAB,0xBE,0x43,0xAA,0x3B,0xE3,0x27,0xE7 } }; // 4F97E180-9BCB-5FC4-ABBE-43AA3BE327E7
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IKeyFrameAnimationFactory>{ 0x7CCCFC87,0x3BAF,0x5100,{ 0xB5,0xF8,0x2F,0x77,0x9F,0x95,0x4F,0x19 } }; // 7CCCFC87-3BAF-5100-B5F8-2F779F954F19
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ILayerVisual>{ 0x64D05CA1,0x3BF6,0x5D4F,{ 0x98,0xA1,0x75,0x00,0xF2,0xF2,0x3E,0xBE } }; // 64D05CA1-3BF6-5D4F-98A1-7500F2F23EBE
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ILayerVisual2>{ 0x9AB2E401,0xAF45,0x54DA,{ 0x99,0x91,0xDD,0x31,0x27,0x31,0x55,0xD2 } }; // 9AB2E401-AF45-54DA-9991-DD31273155D2
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ILinearEasingFunction>{ 0x79BFEEF6,0x70C7,0x50A6,{ 0xBB,0x3A,0x0E,0x96,0x36,0x14,0x86,0x95 } }; // 79BFEEF6-70C7-50A6-BB3A-0E9636148695
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::INaturalMotionAnimation>{ 0x2FF54EBB,0xA035,0x50BE,{ 0xA7,0x3C,0x20,0x01,0x49,0x75,0xEE,0x31 } }; // 2FF54EBB-A035-50BE-A73C-20014975EE31
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::INaturalMotionAnimationFactory>{ 0x0411A259,0x2622,0x59E2,{ 0xA5,0x9E,0x1E,0x23,0xD8,0xF8,0x3A,0x9F } }; // 0411A259-2622-59E2-A59E-1E23D8F83A9F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IPathKeyFrameAnimation>{ 0x2B692808,0x43DA,0x5118,{ 0xB6,0x6D,0x90,0x4A,0x3E,0xC7,0x4F,0xD9 } }; // 2B692808-43DA-5118-B66D-904A3EC74FD9
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IPointLight>{ 0xED5CC102,0xF0AC,0x59A8,{ 0x86,0x78,0xCE,0x54,0x14,0x6E,0x7B,0xE8 } }; // ED5CC102-F0AC-59A8-8678-CE54146E7BE8
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IPointLight2>{ 0xDE466104,0x59D9,0x57D2,{ 0x92,0xB5,0x55,0x4D,0x6D,0x82,0xED,0xF2 } }; // DE466104-59D9-57D2-92B5-554D6D82EDF2
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IPointLight3>{ 0xBE30E87A,0x8CBB,0x5A56,{ 0x8D,0x24,0x2C,0xD8,0x65,0xF3,0x83,0xB3 } }; // BE30E87A-8CBB-5A56-8D24-2CD865F383B3
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IPowerEasingFunction>{ 0x0268A272,0xEA06,0x5FB0,{ 0x8D,0xEF,0x49,0x72,0x6B,0xCE,0xE3,0x9B } }; // 0268A272-EA06-5FB0-8DEF-49726BCEE39B
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IQuaternionKeyFrameAnimation>{ 0xE72D1026,0xDA3B,0x5D56,{ 0x85,0x8B,0x3A,0x9A,0xA3,0xC5,0x7D,0x70 } }; // E72D1026-DA3B-5D56-858B-3A9AA3C57D70
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IRectangleClip>{ 0xBC261502,0x2259,0x5C01,{ 0x86,0x16,0x55,0x61,0x10,0xA0,0x96,0x57 } }; // BC261502-2259-5C01-8616-556110A09657
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IRedirectVisual>{ 0x6C10081A,0xCDE1,0x50D9,{ 0xAC,0x05,0x78,0xD6,0x84,0x5B,0x65,0x6F } }; // 6C10081A-CDE1-50D9-AC05-78D6845B656F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IRenderingDeviceReplacedEventArgs>{ 0xFE5B97C7,0xF656,0x56D6,{ 0xA0,0xCD,0x3E,0x12,0x27,0xE4,0xDD,0x44 } }; // FE5B97C7-F656-56D6-A0CD-3E1227E4DD44
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IScalarKeyFrameAnimation>{ 0x5A5F8ABE,0xD129,0x5B25,{ 0x8A,0xFF,0x81,0x80,0xFD,0x9B,0xFB,0x22 } }; // 5A5F8ABE-D129-5B25-8AFF-8180FD9BFB22
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimation>{ 0x903224B0,0x2DBE,0x56EB,{ 0xB9,0xEA,0x33,0xD2,0xE3,0x11,0x31,0x81 } }; // 903224B0-2DBE-56EB-B9EA-33D2E3113181
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimationFactory>{ 0x14F8A9AB,0x976C,0x5E6F,{ 0x89,0x0B,0x9A,0x74,0xD0,0x7F,0xA3,0x9F } }; // 14F8A9AB-976C-5E6F-890B-9A74D07FA39F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IShapeVisual>{ 0xA911C80B,0xA5A5,0x5ACA,{ 0xB8,0xFF,0xC4,0x3F,0x08,0xF0,0x61,0x43 } }; // A911C80B-A5A5-5ACA-B8FF-C43F08F06143
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ISineEasingFunction>{ 0x7FCCB5F8,0xCB0E,0x5A01,{ 0xA2,0x6B,0x98,0x88,0x0F,0xF4,0x9D,0xC6 } }; // 7FCCB5F8-CB0E-5A01-A26B-98880FF49DC6
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ISpotLight>{ 0x5935496A,0x0586,0x5F77,{ 0xBD,0x03,0xD5,0xA6,0xBB,0x9E,0x8F,0xA0 } }; // 5935496A-0586-5F77-BD03-D5A6BB9E8FA0
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ISpotLight2>{ 0x49DD3B50,0xEC5C,0x5B6C,{ 0xBA,0xA1,0x85,0x04,0xB1,0x3E,0x3A,0x67 } }; // 49DD3B50-EC5C-5B6C-BAA1-8504B13E3A67
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ISpotLight3>{ 0xC6919941,0x0D9F,0x58C8,{ 0x91,0xE2,0xAD,0xEF,0x6E,0x5E,0x70,0xA4 } }; // C6919941-0D9F-58C8-91E2-ADEF6E5E70A4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ISpringScalarNaturalMotionAnimation>{ 0x6F720AFD,0xD3D0,0x5E78,{ 0x9C,0x2E,0x83,0x09,0x2F,0x6E,0xA4,0x5E } }; // 6F720AFD-D3D0-5E78-9C2E-83092F6EA45E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ISpringVector2NaturalMotionAnimation>{ 0x5B4580A4,0x2594,0x521E,{ 0xB2,0x88,0xEA,0xF2,0xC2,0xA1,0x6A,0x66 } }; // 5B4580A4-2594-521E-B288-EAF2C2A16A66
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ISpringVector3NaturalMotionAnimation>{ 0x02D9E1C6,0x7434,0x5464,{ 0xA1,0xF6,0xD6,0x44,0xCE,0x1F,0xC9,0xA6 } }; // 02D9E1C6-7434-5464-A1F6-D644CE1FC9A6
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ISpriteVisual>{ 0x7E964632,0x45E4,0x5761,{ 0x80,0x6D,0x5B,0x40,0x22,0xC1,0x4F,0x26 } }; // 7E964632-45E4-5761-806D-5B4022C14F26
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::ISpriteVisual2>{ 0x3CB43662,0x9ECF,0x5128,{ 0x85,0x0D,0x9E,0xB8,0x43,0x77,0x74,0xF0 } }; // 3CB43662-9ECF-5128-850D-9EB8437774F0
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IStepEasingFunction>{ 0xC7B1D4CF,0xC562,0x56B3,{ 0xB4,0xE6,0xB2,0x13,0x26,0x16,0x5F,0x71 } }; // C7B1D4CF-C562-56B3-B4E6-B21326165F71
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVector2KeyFrameAnimation>{ 0xE9C5E3FD,0x43B7,0x526E,{ 0x9D,0xA0,0x4C,0x3E,0xA9,0x6D,0xB2,0x7D } }; // E9C5E3FD-43B7-526E-9DA0-4C3EA96DB27D
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimation>{ 0xE00E60CE,0xD1BE,0x5C24,{ 0x88,0x5D,0xC1,0xD0,0xA7,0x49,0xD1,0x09 } }; // E00E60CE-D1BE-5C24-885D-C1D0A749D109
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimationFactory>{ 0xE39AEAD8,0x80F9,0x5F64,{ 0x86,0x44,0xE9,0xE5,0x64,0x6B,0x79,0x6F } }; // E39AEAD8-80F9-5F64-8644-E9E5646B796F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVector3KeyFrameAnimation>{ 0xD7DA980E,0x2DDE,0x5DD1,{ 0xA4,0x0C,0xD6,0x86,0x8D,0xD2,0x44,0x9E } }; // D7DA980E-2DDE-5DD1-A40C-D6868DD2449E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimation>{ 0x13FEEEF2,0xD2C0,0x5B72,{ 0xAD,0x67,0x98,0x3A,0x19,0xB9,0xB7,0x83 } }; // 13FEEEF2-D2C0-5B72-AD67-983A19B9B783
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimationFactory>{ 0x428241CB,0xBE9C,0x5C2A,{ 0x93,0x9C,0xEC,0x78,0xAA,0x60,0xBB,0x8A } }; // 428241CB-BE9C-5C2A-939C-EC78AA60BB8A
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVector4KeyFrameAnimation>{ 0x16CEA3B9,0xC5E3,0x5F6F,{ 0xB5,0xC7,0xDA,0x29,0xA3,0x1C,0xCF,0xC7 } }; // 16CEA3B9-C5E3-5F6F-B5C7-DA29A31CCFC7
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVisual>{ 0xC0EEAB6C,0xC897,0x5AC6,{ 0xA1,0xC9,0x63,0xAB,0xD5,0x05,0x5B,0x9B } }; // C0EEAB6C-C897-5AC6-A1C9-63ABD5055B9B
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVisual2>{ 0x492A7995,0x0C5C,0x5993,{ 0xA2,0x83,0x52,0xE4,0xDA,0x30,0x50,0xEE } }; // 492A7995-0C5C-5993-A283-52E4DA3050EE
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVisual3>{ 0x972B70B0,0x950D,0x5656,{ 0xA3,0x80,0xBD,0x4A,0x70,0x77,0x58,0x68 } }; // 972B70B0-950D-5656-A380-BD4A70775868
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVisual4>{ 0x27CB223F,0xC431,0x57AC,{ 0xB6,0x1E,0xD6,0xB7,0x51,0x5D,0x57,0x9F } }; // 27CB223F-C431-57AC-B61E-D6B7515D579F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVisualCollection>{ 0xD002896D,0x67D8,0x5F69,{ 0xAB,0x70,0x58,0x1F,0xA3,0xBF,0x37,0x0F } }; // D002896D-67D8-5F69-AB70-581FA3BF370F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVisualElement>{ 0x2180F1F5,0xB5D8,0x4BF6,{ 0x92,0x0A,0x12,0x00,0x6E,0x63,0xEF,0xEF } }; // 2180F1F5-B5D8-4BF6-920A-12006E63EFEF
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVisualElement2>{ 0xBC950C8D,0x1DB0,0x53AA,{ 0x9D,0xEE,0x34,0x27,0x1C,0xD1,0x8C,0xE6 } }; // BC950C8D-1DB0-53AA-9DEE-34271CD18CE6
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVisualFactory>{ 0x77BB4668,0x83FA,0x5BB5,{ 0xB7,0x8B,0x5E,0x6F,0xDC,0x3D,0x40,0x38 } }; // 77BB4668-83FA-5BB5-B78B-5E6FDC3D4038
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Composition::IVisualUnorderedCollection>{ 0x4A97216E,0x793E,0x54E3,{ 0x96,0xE8,0xF9,0xDB,0x79,0x01,0x19,0xCD } }; // 4A97216E-793E-54E3-96E8-F9DB790119CD
    template <> struct default_interface<winrt::Microsoft::UI::Composition::AmbientLight>{ using type = winrt::Microsoft::UI::Composition::IAmbientLight; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::AnimationController>{ using type = winrt::Microsoft::UI::Composition::IAnimationController; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::AnimationPropertyInfo>{ using type = winrt::Microsoft::UI::Composition::IAnimationPropertyInfo; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::BackEasingFunction>{ using type = winrt::Microsoft::UI::Composition::IBackEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::BooleanKeyFrameAnimation>{ using type = winrt::Microsoft::UI::Composition::IBooleanKeyFrameAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::BounceEasingFunction>{ using type = winrt::Microsoft::UI::Composition::IBounceEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::BounceScalarNaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::IBounceScalarNaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::BounceVector2NaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::IBounceVector2NaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::BounceVector3NaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::IBounceVector3NaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CircleEasingFunction>{ using type = winrt::Microsoft::UI::Composition::ICircleEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::ColorKeyFrameAnimation>{ using type = winrt::Microsoft::UI::Composition::IColorKeyFrameAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionAnimation>{ using type = winrt::Microsoft::UI::Composition::ICompositionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionAnimationGroup>{ using type = winrt::Microsoft::UI::Composition::ICompositionAnimationGroup; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionBackdropBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionBackdropBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionBatchCompletedEventArgs>{ using type = winrt::Microsoft::UI::Composition::ICompositionBatchCompletedEventArgs; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionCapabilities>{ using type = winrt::Microsoft::UI::Composition::ICompositionCapabilities; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionClip>{ using type = winrt::Microsoft::UI::Composition::ICompositionClip; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionColorBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionColorBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionColorGradientStop>{ using type = winrt::Microsoft::UI::Composition::ICompositionColorGradientStop; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionColorGradientStopCollection>{ using type = winrt::Microsoft::UI::Composition::ICompositionColorGradientStopCollection; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionCommitBatch>{ using type = winrt::Microsoft::UI::Composition::ICompositionCommitBatch; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionContainerShape>{ using type = winrt::Microsoft::UI::Composition::ICompositionContainerShape; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionDrawingSurface>{ using type = winrt::Microsoft::UI::Composition::ICompositionDrawingSurface; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionEasingFunction>{ using type = winrt::Microsoft::UI::Composition::ICompositionEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionEffectBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionEffectBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionEffectFactory>{ using type = winrt::Microsoft::UI::Composition::ICompositionEffectFactory; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionEffectSourceParameter>{ using type = winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameter; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionEllipseGeometry>{ using type = winrt::Microsoft::UI::Composition::ICompositionEllipseGeometry; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionGeometricClip>{ using type = winrt::Microsoft::UI::Composition::ICompositionGeometricClip; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionGeometry>{ using type = winrt::Microsoft::UI::Composition::ICompositionGeometry; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionGradientBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionGradientBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionGraphicsDevice>{ using type = winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionLight>{ using type = winrt::Microsoft::UI::Composition::ICompositionLight; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionLineGeometry>{ using type = winrt::Microsoft::UI::Composition::ICompositionLineGeometry; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionLinearGradientBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionLinearGradientBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionMaskBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionMaskBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionMipmapSurface>{ using type = winrt::Microsoft::UI::Composition::ICompositionMipmapSurface; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionNineGridBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionNineGridBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionObject>{ using type = winrt::Microsoft::UI::Composition::ICompositionObject; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionPath>{ using type = winrt::Microsoft::UI::Composition::ICompositionPath; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionPathGeometry>{ using type = winrt::Microsoft::UI::Composition::ICompositionPathGeometry; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionProjectedShadow>{ using type = winrt::Microsoft::UI::Composition::ICompositionProjectedShadow; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster>{ using type = winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCaster; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionProjectedShadowCasterCollection>{ using type = winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollection; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionProjectedShadowReceiver>{ using type = winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiver; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionProjectedShadowReceiverUnorderedCollection>{ using type = winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiverUnorderedCollection; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionPropertySet>{ using type = winrt::Microsoft::UI::Composition::ICompositionPropertySet; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionRadialGradientBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionRadialGradientBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionRectangleGeometry>{ using type = winrt::Microsoft::UI::Composition::ICompositionRectangleGeometry; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionRoundedRectangleGeometry>{ using type = winrt::Microsoft::UI::Composition::ICompositionRoundedRectangleGeometry; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionScopedBatch>{ using type = winrt::Microsoft::UI::Composition::ICompositionScopedBatch; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionShadow>{ using type = winrt::Microsoft::UI::Composition::ICompositionShadow; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionShape>{ using type = winrt::Microsoft::UI::Composition::ICompositionShape; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionShapeCollection>{ using type = winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::UI::Composition::CompositionShape>; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionSpriteShape>{ using type = winrt::Microsoft::UI::Composition::ICompositionSpriteShape; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionStrokeDashArray>{ using type = winrt::Windows::Foundation::Collections::IVector<float>; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionSurfaceBrush>{ using type = winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionTransform>{ using type = winrt::Microsoft::UI::Composition::ICompositionTransform; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionViewBox>{ using type = winrt::Microsoft::UI::Composition::ICompositionViewBox; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionVirtualDrawingSurface>{ using type = winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurface; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CompositionVisualSurface>{ using type = winrt::Microsoft::UI::Composition::ICompositionVisualSurface; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::Compositor>{ using type = winrt::Microsoft::UI::Composition::ICompositor; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::ContainerVisual>{ using type = winrt::Microsoft::UI::Composition::IContainerVisual; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::CubicBezierEasingFunction>{ using type = winrt::Microsoft::UI::Composition::ICubicBezierEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::DistantLight>{ using type = winrt::Microsoft::UI::Composition::IDistantLight; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::DropShadow>{ using type = winrt::Microsoft::UI::Composition::IDropShadow; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::ElasticEasingFunction>{ using type = winrt::Microsoft::UI::Composition::IElasticEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::ExponentialEasingFunction>{ using type = winrt::Microsoft::UI::Composition::IExponentialEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::ExpressionAnimation>{ using type = winrt::Microsoft::UI::Composition::IExpressionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::ImplicitAnimationCollection>{ using type = winrt::Microsoft::UI::Composition::IImplicitAnimationCollection; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::InitialValueExpressionCollection>{ using type = winrt::Windows::Foundation::Collections::IMap<hstring, hstring>; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::InsetClip>{ using type = winrt::Microsoft::UI::Composition::IInsetClip; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::KeyFrameAnimation>{ using type = winrt::Microsoft::UI::Composition::IKeyFrameAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::LayerVisual>{ using type = winrt::Microsoft::UI::Composition::ILayerVisual; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::LinearEasingFunction>{ using type = winrt::Microsoft::UI::Composition::ILinearEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::NaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::INaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::PathKeyFrameAnimation>{ using type = winrt::Microsoft::UI::Composition::IPathKeyFrameAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::PointLight>{ using type = winrt::Microsoft::UI::Composition::IPointLight; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::PowerEasingFunction>{ using type = winrt::Microsoft::UI::Composition::IPowerEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::QuaternionKeyFrameAnimation>{ using type = winrt::Microsoft::UI::Composition::IQuaternionKeyFrameAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::RectangleClip>{ using type = winrt::Microsoft::UI::Composition::IRectangleClip; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::RedirectVisual>{ using type = winrt::Microsoft::UI::Composition::IRedirectVisual; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::RenderingDeviceReplacedEventArgs>{ using type = winrt::Microsoft::UI::Composition::IRenderingDeviceReplacedEventArgs; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::ScalarKeyFrameAnimation>{ using type = winrt::Microsoft::UI::Composition::IScalarKeyFrameAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::ScalarNaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::ShapeVisual>{ using type = winrt::Microsoft::UI::Composition::IShapeVisual; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::SineEasingFunction>{ using type = winrt::Microsoft::UI::Composition::ISineEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::SpotLight>{ using type = winrt::Microsoft::UI::Composition::ISpotLight; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::SpringScalarNaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::ISpringScalarNaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::SpringVector2NaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::ISpringVector2NaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::SpringVector3NaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::ISpringVector3NaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::SpriteVisual>{ using type = winrt::Microsoft::UI::Composition::ISpriteVisual; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::StepEasingFunction>{ using type = winrt::Microsoft::UI::Composition::IStepEasingFunction; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::Vector2KeyFrameAnimation>{ using type = winrt::Microsoft::UI::Composition::IVector2KeyFrameAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::Vector2NaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::Vector3KeyFrameAnimation>{ using type = winrt::Microsoft::UI::Composition::IVector3KeyFrameAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::Vector3NaturalMotionAnimation>{ using type = winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::Vector4KeyFrameAnimation>{ using type = winrt::Microsoft::UI::Composition::IVector4KeyFrameAnimation; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::Visual>{ using type = winrt::Microsoft::UI::Composition::IVisual; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::VisualCollection>{ using type = winrt::Microsoft::UI::Composition::IVisualCollection; };
    template <> struct default_interface<winrt::Microsoft::UI::Composition::VisualUnorderedCollection>{ using type = winrt::Microsoft::UI::Composition::IVisualUnorderedCollection; };
    template <> struct abi<winrt::Microsoft::UI::Composition::IAmbientLight>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Color(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_Color(struct struct_Windows_UI_Color) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IAmbientLight2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Intensity(float*) noexcept = 0;
            virtual int32_t __stdcall put_Intensity(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IAnimationController>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_PlaybackRate(float*) noexcept = 0;
            virtual int32_t __stdcall put_PlaybackRate(float) noexcept = 0;
            virtual int32_t __stdcall get_Progress(float*) noexcept = 0;
            virtual int32_t __stdcall put_Progress(float) noexcept = 0;
            virtual int32_t __stdcall get_ProgressBehavior(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_ProgressBehavior(int32_t) noexcept = 0;
            virtual int32_t __stdcall Pause() noexcept = 0;
            virtual int32_t __stdcall Resume() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IAnimationControllerStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_MaxPlaybackRate(float*) noexcept = 0;
            virtual int32_t __stdcall get_MinPlaybackRate(float*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IAnimationObject>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall PopulatePropertyInfo(void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_AccessMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_AccessMode(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetResolvedCompositionObject(void**) noexcept = 0;
            virtual int32_t __stdcall GetResolvedCompositionObjectProperty(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IBackEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Amplitude(float*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IBooleanKeyFrameAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall InsertKeyFrame(float, bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IBounceEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Bounces(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Bounciness(float*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IBounceScalarNaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Acceleration(float*) noexcept = 0;
            virtual int32_t __stdcall put_Acceleration(float) noexcept = 0;
            virtual int32_t __stdcall get_Restitution(float*) noexcept = 0;
            virtual int32_t __stdcall put_Restitution(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IBounceVector2NaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Acceleration(float*) noexcept = 0;
            virtual int32_t __stdcall put_Acceleration(float) noexcept = 0;
            virtual int32_t __stdcall get_Restitution(float*) noexcept = 0;
            virtual int32_t __stdcall put_Restitution(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IBounceVector3NaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Acceleration(float*) noexcept = 0;
            virtual int32_t __stdcall put_Acceleration(float) noexcept = 0;
            virtual int32_t __stdcall get_Restitution(float*) noexcept = 0;
            virtual int32_t __stdcall put_Restitution(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICircleEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IColorKeyFrameAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_InterpolationColorSpace(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_InterpolationColorSpace(int32_t) noexcept = 0;
            virtual int32_t __stdcall InsertKeyFrame(float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall InsertKeyFrameWithEasingFunction(float, struct struct_Windows_UI_Color, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall ClearAllParameters() noexcept = 0;
            virtual int32_t __stdcall ClearParameter(void*) noexcept = 0;
            virtual int32_t __stdcall SetColorParameter(void*, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall SetMatrix3x2Parameter(void*, winrt::Windows::Foundation::Numerics::float3x2) noexcept = 0;
            virtual int32_t __stdcall SetMatrix4x4Parameter(void*, winrt::Windows::Foundation::Numerics::float4x4) noexcept = 0;
            virtual int32_t __stdcall SetQuaternionParameter(void*, winrt::Windows::Foundation::Numerics::quaternion) noexcept = 0;
            virtual int32_t __stdcall SetReferenceParameter(void*, void*) noexcept = 0;
            virtual int32_t __stdcall SetScalarParameter(void*, float) noexcept = 0;
            virtual int32_t __stdcall SetVector2Parameter(void*, winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall SetVector3Parameter(void*, winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall SetVector4Parameter(void*, winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionAnimation2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall SetBooleanParameter(void*, bool) noexcept = 0;
            virtual int32_t __stdcall get_Target(void**) noexcept = 0;
            virtual int32_t __stdcall put_Target(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionAnimation3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_InitialValueExpressions(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionAnimation4>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall SetExpressionReferenceParameter(void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionAnimationBase>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionAnimationFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionAnimationGroup>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Count(int32_t*) noexcept = 0;
            virtual int32_t __stdcall Add(void*) noexcept = 0;
            virtual int32_t __stdcall Remove(void*) noexcept = 0;
            virtual int32_t __stdcall RemoveAll() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionApiInformationStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ApiVersion(uint64_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionBackdropBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionBatchCompletedEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionBrushFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionCapabilities>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall AreEffectsSupported(bool*) noexcept = 0;
            virtual int32_t __stdcall AreEffectsFast(bool*) noexcept = 0;
            virtual int32_t __stdcall add_Changed(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_Changed(winrt::event_token) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionClip>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionClip2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_AnchorPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_AnchorPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_CenterPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_CenterPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngle(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngle(float) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngleInDegrees(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngleInDegrees(float) noexcept = 0;
            virtual int32_t __stdcall get_Scale(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Scale(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2*) noexcept = 0;
            virtual int32_t __stdcall put_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionClipFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionColorBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Color(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_Color(struct struct_Windows_UI_Color) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionColorGradientStop>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Color(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_Color(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_Offset(float*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionColorGradientStopCollection>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionCommitBatch>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsActive(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsEnded(bool*) noexcept = 0;
            virtual int32_t __stdcall add_Completed(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_Completed(winrt::event_token) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionContainerShape>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Shapes(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_AlphaMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_PixelFormat(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Size(winrt::Windows::Foundation::Size*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SizeInt32(struct struct_Windows_Graphics_SizeInt32*) noexcept = 0;
            virtual int32_t __stdcall Resize(struct struct_Windows_Graphics_SizeInt32) noexcept = 0;
            virtual int32_t __stdcall Scroll(struct struct_Windows_Graphics_PointInt32) noexcept = 0;
            virtual int32_t __stdcall ScrollRect(struct struct_Windows_Graphics_PointInt32, struct struct_Windows_Graphics_RectInt32) noexcept = 0;
            virtual int32_t __stdcall ScrollWithClip(struct struct_Windows_Graphics_PointInt32, struct struct_Windows_Graphics_RectInt32) noexcept = 0;
            virtual int32_t __stdcall ScrollRectWithClip(struct struct_Windows_Graphics_PointInt32, struct struct_Windows_Graphics_RectInt32, struct struct_Windows_Graphics_RectInt32) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionDrawingSurfaceFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateCubicBezierEasingFunction(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLinearEasingFunction(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateStepEasingFunction(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateStepEasingFunctionWithStepCount(void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateBackEasingFunction(void*, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateBounceEasingFunction(void*, int32_t, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateCircleEasingFunction(void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateElasticEasingFunction(void*, int32_t, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateExponentialEasingFunction(void*, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreatePowerEasingFunction(void*, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateSineEasingFunction(void*, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionEffectBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetSourceParameter(void*, void**) noexcept = 0;
            virtual int32_t __stdcall SetSourceParameter(void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionEffectFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateBrush(void**) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(winrt::hresult*) noexcept = 0;
            virtual int32_t __stdcall get_LoadStatus(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameter>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Name(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameterFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionEllipseGeometry>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Center(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Center(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Radius(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Radius(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGeometricClip>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Geometry(void**) noexcept = 0;
            virtual int32_t __stdcall put_Geometry(void*) noexcept = 0;
            virtual int32_t __stdcall get_ViewBox(void**) noexcept = 0;
            virtual int32_t __stdcall put_ViewBox(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGeometry>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_TrimEnd(float*) noexcept = 0;
            virtual int32_t __stdcall put_TrimEnd(float) noexcept = 0;
            virtual int32_t __stdcall get_TrimOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_TrimOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_TrimStart(float*) noexcept = 0;
            virtual int32_t __stdcall put_TrimStart(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGeometryFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGradientBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_AnchorPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_AnchorPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_CenterPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_CenterPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_ColorStops(void**) noexcept = 0;
            virtual int32_t __stdcall get_ExtendMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_ExtendMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_InterpolationSpace(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_InterpolationSpace(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngle(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngle(float) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngleInDegrees(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngleInDegrees(float) noexcept = 0;
            virtual int32_t __stdcall get_Scale(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Scale(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2*) noexcept = 0;
            virtual int32_t __stdcall put_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGradientBrush2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_MappingMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_MappingMode(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGradientBrushFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateDrawingSurface(winrt::Windows::Foundation::Size, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall add_RenderingDeviceReplaced(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_RenderingDeviceReplaced(winrt::event_token) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateDrawingSurface2(struct struct_Windows_Graphics_SizeInt32, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateVirtualDrawingSurface(struct struct_Windows_Graphics_SizeInt32, int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateMipmapSurface(struct struct_Windows_Graphics_SizeInt32, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall Trim() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice4>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CaptureAsync(void*, struct struct_Windows_Graphics_SizeInt32, int32_t, int32_t, float, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionLight>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Targets(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionLight2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ExclusionsFromTargets(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionLight3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsEnabled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsEnabled(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionLightFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionLineGeometry>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Start(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Start(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_End(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_End(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionLinearGradientBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_EndPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_EndPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_StartPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_StartPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionMaskBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mask(void**) noexcept = 0;
            virtual int32_t __stdcall put_Mask(void*) noexcept = 0;
            virtual int32_t __stdcall get_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionMipmapSurface>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_LevelCount(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_AlphaMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_PixelFormat(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_SizeInt32(struct struct_Windows_Graphics_SizeInt32*) noexcept = 0;
            virtual int32_t __stdcall GetDrawingSurfaceForLevel(uint32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionNineGridBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_BottomInset(float*) noexcept = 0;
            virtual int32_t __stdcall put_BottomInset(float) noexcept = 0;
            virtual int32_t __stdcall get_BottomInsetScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_BottomInsetScale(float) noexcept = 0;
            virtual int32_t __stdcall get_IsCenterHollow(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsCenterHollow(bool) noexcept = 0;
            virtual int32_t __stdcall get_LeftInset(float*) noexcept = 0;
            virtual int32_t __stdcall put_LeftInset(float) noexcept = 0;
            virtual int32_t __stdcall get_LeftInsetScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_LeftInsetScale(float) noexcept = 0;
            virtual int32_t __stdcall get_RightInset(float*) noexcept = 0;
            virtual int32_t __stdcall put_RightInset(float) noexcept = 0;
            virtual int32_t __stdcall get_RightInsetScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_RightInsetScale(float) noexcept = 0;
            virtual int32_t __stdcall get_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
            virtual int32_t __stdcall get_TopInset(float*) noexcept = 0;
            virtual int32_t __stdcall put_TopInset(float) noexcept = 0;
            virtual int32_t __stdcall get_TopInsetScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_TopInsetScale(float) noexcept = 0;
            virtual int32_t __stdcall SetInsets(float) noexcept = 0;
            virtual int32_t __stdcall SetInsetsWithValues(float, float, float, float) noexcept = 0;
            virtual int32_t __stdcall SetInsetScales(float) noexcept = 0;
            virtual int32_t __stdcall SetInsetScalesWithValues(float, float, float, float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionObject>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Compositor(void**) noexcept = 0;
            virtual int32_t __stdcall get_Properties(void**) noexcept = 0;
            virtual int32_t __stdcall StartAnimation(void*, void*) noexcept = 0;
            virtual int32_t __stdcall StopAnimation(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionObject2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Comment(void**) noexcept = 0;
            virtual int32_t __stdcall put_Comment(void*) noexcept = 0;
            virtual int32_t __stdcall get_ImplicitAnimations(void**) noexcept = 0;
            virtual int32_t __stdcall put_ImplicitAnimations(void*) noexcept = 0;
            virtual int32_t __stdcall StartAnimationGroup(void*) noexcept = 0;
            virtual int32_t __stdcall StopAnimationGroup(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionObject3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DispatcherQueue(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionObject4>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall TryGetAnimationController(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionObject5>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall StartAnimationWithController(void*, void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionObjectFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionObjectStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall StartAnimationWithIAnimationObject(void*, void*, void*) noexcept = 0;
            virtual int32_t __stdcall StartAnimationGroupWithIAnimationObject(void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionPath>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionPathFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionPathGeometry>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Path(void**) noexcept = 0;
            virtual int32_t __stdcall put_Path(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionProjectedShadow>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_BlurRadiusMultiplier(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlurRadiusMultiplier(float) noexcept = 0;
            virtual int32_t __stdcall get_Casters(void**) noexcept = 0;
            virtual int32_t __stdcall get_LightSource(void**) noexcept = 0;
            virtual int32_t __stdcall put_LightSource(void*) noexcept = 0;
            virtual int32_t __stdcall get_MaxBlurRadius(float*) noexcept = 0;
            virtual int32_t __stdcall put_MaxBlurRadius(float) noexcept = 0;
            virtual int32_t __stdcall get_MinBlurRadius(float*) noexcept = 0;
            virtual int32_t __stdcall put_MinBlurRadius(float) noexcept = 0;
            virtual int32_t __stdcall get_Receivers(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCaster>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Brush(void**) noexcept = 0;
            virtual int32_t __stdcall put_Brush(void*) noexcept = 0;
            virtual int32_t __stdcall get_CastingVisual(void**) noexcept = 0;
            virtual int32_t __stdcall put_CastingVisual(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollection>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Count(int32_t*) noexcept = 0;
            virtual int32_t __stdcall InsertAbove(void*, void*) noexcept = 0;
            virtual int32_t __stdcall InsertAtBottom(void*) noexcept = 0;
            virtual int32_t __stdcall InsertAtTop(void*) noexcept = 0;
            virtual int32_t __stdcall InsertBelow(void*, void*) noexcept = 0;
            virtual int32_t __stdcall Remove(void*) noexcept = 0;
            virtual int32_t __stdcall RemoveAll() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollectionStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_MaxRespectedCasters(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiver>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ReceivingVisual(void**) noexcept = 0;
            virtual int32_t __stdcall put_ReceivingVisual(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiverUnorderedCollection>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Add(void*) noexcept = 0;
            virtual int32_t __stdcall get_Count(int32_t*) noexcept = 0;
            virtual int32_t __stdcall Remove(void*) noexcept = 0;
            virtual int32_t __stdcall RemoveAll() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionPropertySet>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall InsertColor(void*, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall InsertMatrix3x2(void*, winrt::Windows::Foundation::Numerics::float3x2) noexcept = 0;
            virtual int32_t __stdcall InsertMatrix4x4(void*, winrt::Windows::Foundation::Numerics::float4x4) noexcept = 0;
            virtual int32_t __stdcall InsertQuaternion(void*, winrt::Windows::Foundation::Numerics::quaternion) noexcept = 0;
            virtual int32_t __stdcall InsertScalar(void*, float) noexcept = 0;
            virtual int32_t __stdcall InsertVector2(void*, winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall InsertVector3(void*, winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall InsertVector4(void*, winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall TryGetColor(void*, struct struct_Windows_UI_Color*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall TryGetMatrix3x2(void*, winrt::Windows::Foundation::Numerics::float3x2*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall TryGetMatrix4x4(void*, winrt::Windows::Foundation::Numerics::float4x4*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall TryGetQuaternion(void*, winrt::Windows::Foundation::Numerics::quaternion*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall TryGetScalar(void*, float*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall TryGetVector2(void*, winrt::Windows::Foundation::Numerics::float2*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall TryGetVector3(void*, winrt::Windows::Foundation::Numerics::float3*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall TryGetVector4(void*, winrt::Windows::Foundation::Numerics::float4*, int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionPropertySet2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall InsertBoolean(void*, bool) noexcept = 0;
            virtual int32_t __stdcall TryGetBoolean(void*, bool*, int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionRadialGradientBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_EllipseCenter(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_EllipseCenter(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_EllipseRadius(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_EllipseRadius(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_GradientOriginOffset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_GradientOriginOffset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionRectangleGeometry>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Size(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Size(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionRoundedRectangleGeometry>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CornerRadius(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_CornerRadius(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Size(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Size(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionScopedBatch>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsActive(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsEnded(bool*) noexcept = 0;
            virtual int32_t __stdcall End() noexcept = 0;
            virtual int32_t __stdcall Resume() noexcept = 0;
            virtual int32_t __stdcall Suspend() noexcept = 0;
            virtual int32_t __stdcall add_Completed(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_Completed(winrt::event_token) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionShadow>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionShadowFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionShape>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CenterPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_CenterPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngle(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngle(float) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngleInDegrees(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngleInDegrees(float) noexcept = 0;
            virtual int32_t __stdcall get_Scale(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Scale(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2*) noexcept = 0;
            virtual int32_t __stdcall put_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionShapeFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionSpriteShape>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_FillBrush(void**) noexcept = 0;
            virtual int32_t __stdcall put_FillBrush(void*) noexcept = 0;
            virtual int32_t __stdcall get_Geometry(void**) noexcept = 0;
            virtual int32_t __stdcall put_Geometry(void*) noexcept = 0;
            virtual int32_t __stdcall get_IsStrokeNonScaling(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsStrokeNonScaling(bool) noexcept = 0;
            virtual int32_t __stdcall get_StrokeBrush(void**) noexcept = 0;
            virtual int32_t __stdcall put_StrokeBrush(void*) noexcept = 0;
            virtual int32_t __stdcall get_StrokeDashArray(void**) noexcept = 0;
            virtual int32_t __stdcall get_StrokeDashCap(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StrokeDashCap(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_StrokeDashOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_StrokeDashOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_StrokeEndCap(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StrokeEndCap(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_StrokeLineJoin(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StrokeLineJoin(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_StrokeMiterLimit(float*) noexcept = 0;
            virtual int32_t __stdcall put_StrokeMiterLimit(float) noexcept = 0;
            virtual int32_t __stdcall get_StrokeStartCap(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StrokeStartCap(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_StrokeThickness(float*) noexcept = 0;
            virtual int32_t __stdcall put_StrokeThickness(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionSupportsSystemBackdrop>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SystemBackdrop(void**) noexcept = 0;
            virtual int32_t __stdcall put_SystemBackdrop(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionSurface>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_BitmapInterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_BitmapInterpolationMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_HorizontalAlignmentRatio(float*) noexcept = 0;
            virtual int32_t __stdcall put_HorizontalAlignmentRatio(float) noexcept = 0;
            virtual int32_t __stdcall get_Stretch(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Stretch(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Surface(void**) noexcept = 0;
            virtual int32_t __stdcall put_Surface(void*) noexcept = 0;
            virtual int32_t __stdcall get_VerticalAlignmentRatio(float*) noexcept = 0;
            virtual int32_t __stdcall put_VerticalAlignmentRatio(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_AnchorPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_AnchorPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_CenterPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_CenterPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngle(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngle(float) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngleInDegrees(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngleInDegrees(float) noexcept = 0;
            virtual int32_t __stdcall get_Scale(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Scale(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2*) noexcept = 0;
            virtual int32_t __stdcall put_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SnapToPixels(bool*) noexcept = 0;
            virtual int32_t __stdcall put_SnapToPixels(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionSurfaceFacade>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetRealSurface(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionTransform>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionTransformFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionViewBox>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_HorizontalAlignmentRatio(float*) noexcept = 0;
            virtual int32_t __stdcall put_HorizontalAlignmentRatio(float) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Size(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Size(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Stretch(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Stretch(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_VerticalAlignmentRatio(float*) noexcept = 0;
            virtual int32_t __stdcall put_VerticalAlignmentRatio(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurface>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Trim(uint32_t, struct struct_Windows_Graphics_RectInt32*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurfaceFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositionVisualSurface>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SourceVisual(void**) noexcept = 0;
            virtual int32_t __stdcall put_SourceVisual(void*) noexcept = 0;
            virtual int32_t __stdcall get_SourceOffset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_SourceOffset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_SourceSize(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_SourceSize(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositor>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateColorKeyFrameAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateColorBrush(void**) noexcept = 0;
            virtual int32_t __stdcall CreateColorBrushWithColor(struct struct_Windows_UI_Color, void**) noexcept = 0;
            virtual int32_t __stdcall CreateContainerVisual(void**) noexcept = 0;
            virtual int32_t __stdcall CreateCubicBezierEasingFunction(winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, void**) noexcept = 0;
            virtual int32_t __stdcall CreateEffectFactory(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateEffectFactoryWithProperties(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateExpressionAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateExpressionAnimationWithExpression(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateInsetClip(void**) noexcept = 0;
            virtual int32_t __stdcall CreateInsetClipWithInsets(float, float, float, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLinearEasingFunction(void**) noexcept = 0;
            virtual int32_t __stdcall CreatePropertySet(void**) noexcept = 0;
            virtual int32_t __stdcall CreateQuaternionKeyFrameAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateScalarKeyFrameAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateScopedBatch(uint32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpriteVisual(void**) noexcept = 0;
            virtual int32_t __stdcall CreateSurfaceBrush(void**) noexcept = 0;
            virtual int32_t __stdcall CreateSurfaceBrushWithSurface(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateVector2KeyFrameAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateVector3KeyFrameAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateVector4KeyFrameAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall GetCommitBatch(uint32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositor2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateAmbientLight(void**) noexcept = 0;
            virtual int32_t __stdcall CreateAnimationGroup(void**) noexcept = 0;
            virtual int32_t __stdcall CreateBackdropBrush(void**) noexcept = 0;
            virtual int32_t __stdcall CreateDistantLight(void**) noexcept = 0;
            virtual int32_t __stdcall CreateDropShadow(void**) noexcept = 0;
            virtual int32_t __stdcall CreateImplicitAnimationCollection(void**) noexcept = 0;
            virtual int32_t __stdcall CreateLayerVisual(void**) noexcept = 0;
            virtual int32_t __stdcall CreateMaskBrush(void**) noexcept = 0;
            virtual int32_t __stdcall CreateNineGridBrush(void**) noexcept = 0;
            virtual int32_t __stdcall CreatePointLight(void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpotLight(void**) noexcept = 0;
            virtual int32_t __stdcall CreateStepEasingFunction(void**) noexcept = 0;
            virtual int32_t __stdcall CreateStepEasingFunctionWithStepCount(int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositor4>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateColorGradientStop(void**) noexcept = 0;
            virtual int32_t __stdcall CreateColorGradientStopWithOffsetAndColor(float, struct struct_Windows_UI_Color, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLinearGradientBrush(void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpringScalarAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpringVector2Animation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpringVector3Animation(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositor5>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Comment(void**) noexcept = 0;
            virtual int32_t __stdcall put_Comment(void*) noexcept = 0;
            virtual int32_t __stdcall get_GlobalPlaybackRate(float*) noexcept = 0;
            virtual int32_t __stdcall put_GlobalPlaybackRate(float) noexcept = 0;
            virtual int32_t __stdcall CreateBounceScalarAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateBounceVector2Animation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateBounceVector3Animation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateContainerShape(void**) noexcept = 0;
            virtual int32_t __stdcall CreateEllipseGeometry(void**) noexcept = 0;
            virtual int32_t __stdcall CreateLineGeometry(void**) noexcept = 0;
            virtual int32_t __stdcall CreatePathGeometry(void**) noexcept = 0;
            virtual int32_t __stdcall CreatePathGeometryWithPath(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreatePathKeyFrameAnimation(void**) noexcept = 0;
            virtual int32_t __stdcall CreateRectangleGeometry(void**) noexcept = 0;
            virtual int32_t __stdcall CreateRoundedRectangleGeometry(void**) noexcept = 0;
            virtual int32_t __stdcall CreateShapeVisual(void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpriteShape(void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpriteShapeWithGeometry(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateViewBox(void**) noexcept = 0;
            virtual int32_t __stdcall RequestCommitAsync(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositor6>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateGeometricClip(void**) noexcept = 0;
            virtual int32_t __stdcall CreateGeometricClipWithGeometry(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateRedirectVisual(void**) noexcept = 0;
            virtual int32_t __stdcall CreateRedirectVisualWithSourceVisual(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateBooleanKeyFrameAnimation(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositor7>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DispatcherQueue(void**) noexcept = 0;
            virtual int32_t __stdcall CreateAnimationPropertyInfo(void**) noexcept = 0;
            virtual int32_t __stdcall CreateRectangleClip(void**) noexcept = 0;
            virtual int32_t __stdcall CreateRectangleClipWithSides(float, float, float, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateRectangleClipWithSidesAndRadius(float, float, float, float, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositor8>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateAnimationController(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositorStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_MaxGlobalPlaybackRate(float*) noexcept = 0;
            virtual int32_t __stdcall get_MinGlobalPlaybackRate(float*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositorWithProjectedShadow>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateProjectedShadowCaster(void**) noexcept = 0;
            virtual int32_t __stdcall CreateProjectedShadow(void**) noexcept = 0;
            virtual int32_t __stdcall CreateProjectedShadowReceiver(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositorWithRadialGradient>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateRadialGradientBrush(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICompositorWithVisualSurface>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateVisualSurface(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IContainerVisual>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Children(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IContainerVisualFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ICubicBezierEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ControlPoint1(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall get_ControlPoint2(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IDistantLight>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Color(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_Color(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_CoordinateSpace(void**) noexcept = 0;
            virtual int32_t __stdcall put_CoordinateSpace(void*) noexcept = 0;
            virtual int32_t __stdcall get_Direction(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_Direction(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IDistantLight2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Intensity(float*) noexcept = 0;
            virtual int32_t __stdcall put_Intensity(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IDropShadow>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_BlurRadius(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlurRadius(float) noexcept = 0;
            virtual int32_t __stdcall get_Color(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_Color(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_Mask(void**) noexcept = 0;
            virtual int32_t __stdcall put_Mask(void*) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_Opacity(float*) noexcept = 0;
            virtual int32_t __stdcall put_Opacity(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IDropShadow2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SourcePolicy(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_SourcePolicy(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IElasticEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Oscillations(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Springiness(float*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IExponentialEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Exponent(float*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IExpressionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Expression(void**) noexcept = 0;
            virtual int32_t __stdcall put_Expression(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IImplicitAnimationCollection>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IInsetClip>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_BottomInset(float*) noexcept = 0;
            virtual int32_t __stdcall put_BottomInset(float) noexcept = 0;
            virtual int32_t __stdcall get_LeftInset(float*) noexcept = 0;
            virtual int32_t __stdcall put_LeftInset(float) noexcept = 0;
            virtual int32_t __stdcall get_RightInset(float*) noexcept = 0;
            virtual int32_t __stdcall put_RightInset(float) noexcept = 0;
            virtual int32_t __stdcall get_TopInset(float*) noexcept = 0;
            virtual int32_t __stdcall put_TopInset(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IKeyFrameAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DelayTime(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_DelayTime(int64_t) noexcept = 0;
            virtual int32_t __stdcall get_Duration(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_Duration(int64_t) noexcept = 0;
            virtual int32_t __stdcall get_IterationBehavior(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_IterationBehavior(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_IterationCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_IterationCount(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_KeyFrameCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_StopBehavior(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StopBehavior(int32_t) noexcept = 0;
            virtual int32_t __stdcall InsertExpressionKeyFrame(float, void*) noexcept = 0;
            virtual int32_t __stdcall InsertExpressionKeyFrameWithEasingFunction(float, void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IKeyFrameAnimation2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Direction(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Direction(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IKeyFrameAnimation3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DelayBehavior(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_DelayBehavior(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IKeyFrameAnimationFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ILayerVisual>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Effect(void**) noexcept = 0;
            virtual int32_t __stdcall put_Effect(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ILayerVisual2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Shadow(void**) noexcept = 0;
            virtual int32_t __stdcall put_Shadow(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ILinearEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::INaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DelayBehavior(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_DelayBehavior(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_DelayTime(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_DelayTime(int64_t) noexcept = 0;
            virtual int32_t __stdcall get_StopBehavior(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StopBehavior(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::INaturalMotionAnimationFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IPathKeyFrameAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall InsertKeyFrame(float, void*) noexcept = 0;
            virtual int32_t __stdcall InsertKeyFrameWithEasingFunction(float, void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IPointLight>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Color(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_Color(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_ConstantAttenuation(float*) noexcept = 0;
            virtual int32_t __stdcall put_ConstantAttenuation(float) noexcept = 0;
            virtual int32_t __stdcall get_CoordinateSpace(void**) noexcept = 0;
            virtual int32_t __stdcall put_CoordinateSpace(void*) noexcept = 0;
            virtual int32_t __stdcall get_LinearAttenuation(float*) noexcept = 0;
            virtual int32_t __stdcall put_LinearAttenuation(float) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_QuadraticAttenuation(float*) noexcept = 0;
            virtual int32_t __stdcall put_QuadraticAttenuation(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IPointLight2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Intensity(float*) noexcept = 0;
            virtual int32_t __stdcall put_Intensity(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IPointLight3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_MinAttenuationCutoff(float*) noexcept = 0;
            virtual int32_t __stdcall put_MinAttenuationCutoff(float) noexcept = 0;
            virtual int32_t __stdcall get_MaxAttenuationCutoff(float*) noexcept = 0;
            virtual int32_t __stdcall put_MaxAttenuationCutoff(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IPowerEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Power(float*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IQuaternionKeyFrameAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall InsertKeyFrame(float, winrt::Windows::Foundation::Numerics::quaternion) noexcept = 0;
            virtual int32_t __stdcall InsertKeyFrameWithEasingFunction(float, winrt::Windows::Foundation::Numerics::quaternion, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IRectangleClip>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Bottom(float*) noexcept = 0;
            virtual int32_t __stdcall put_Bottom(float) noexcept = 0;
            virtual int32_t __stdcall get_BottomLeftRadius(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_BottomLeftRadius(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_BottomRightRadius(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_BottomRightRadius(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Left(float*) noexcept = 0;
            virtual int32_t __stdcall put_Left(float) noexcept = 0;
            virtual int32_t __stdcall get_Right(float*) noexcept = 0;
            virtual int32_t __stdcall put_Right(float) noexcept = 0;
            virtual int32_t __stdcall get_Top(float*) noexcept = 0;
            virtual int32_t __stdcall put_Top(float) noexcept = 0;
            virtual int32_t __stdcall get_TopLeftRadius(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_TopLeftRadius(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_TopRightRadius(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_TopRightRadius(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IRedirectVisual>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IRenderingDeviceReplacedEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_GraphicsDevice(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IScalarKeyFrameAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall InsertKeyFrame(float, float) noexcept = 0;
            virtual int32_t __stdcall InsertKeyFrameWithEasingFunction(float, float, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_FinalValue(void**) noexcept = 0;
            virtual int32_t __stdcall put_FinalValue(void*) noexcept = 0;
            virtual int32_t __stdcall get_InitialValue(void**) noexcept = 0;
            virtual int32_t __stdcall put_InitialValue(void*) noexcept = 0;
            virtual int32_t __stdcall get_InitialVelocity(float*) noexcept = 0;
            virtual int32_t __stdcall put_InitialVelocity(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimationFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IShapeVisual>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Shapes(void**) noexcept = 0;
            virtual int32_t __stdcall get_ViewBox(void**) noexcept = 0;
            virtual int32_t __stdcall put_ViewBox(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ISineEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ISpotLight>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ConstantAttenuation(float*) noexcept = 0;
            virtual int32_t __stdcall put_ConstantAttenuation(float) noexcept = 0;
            virtual int32_t __stdcall get_CoordinateSpace(void**) noexcept = 0;
            virtual int32_t __stdcall put_CoordinateSpace(void*) noexcept = 0;
            virtual int32_t __stdcall get_Direction(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_Direction(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_InnerConeAngle(float*) noexcept = 0;
            virtual int32_t __stdcall put_InnerConeAngle(float) noexcept = 0;
            virtual int32_t __stdcall get_InnerConeAngleInDegrees(float*) noexcept = 0;
            virtual int32_t __stdcall put_InnerConeAngleInDegrees(float) noexcept = 0;
            virtual int32_t __stdcall get_InnerConeColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_InnerConeColor(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_LinearAttenuation(float*) noexcept = 0;
            virtual int32_t __stdcall put_LinearAttenuation(float) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_OuterConeAngle(float*) noexcept = 0;
            virtual int32_t __stdcall put_OuterConeAngle(float) noexcept = 0;
            virtual int32_t __stdcall get_OuterConeAngleInDegrees(float*) noexcept = 0;
            virtual int32_t __stdcall put_OuterConeAngleInDegrees(float) noexcept = 0;
            virtual int32_t __stdcall get_OuterConeColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_OuterConeColor(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_QuadraticAttenuation(float*) noexcept = 0;
            virtual int32_t __stdcall put_QuadraticAttenuation(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ISpotLight2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_InnerConeIntensity(float*) noexcept = 0;
            virtual int32_t __stdcall put_InnerConeIntensity(float) noexcept = 0;
            virtual int32_t __stdcall get_OuterConeIntensity(float*) noexcept = 0;
            virtual int32_t __stdcall put_OuterConeIntensity(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ISpotLight3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_MinAttenuationCutoff(float*) noexcept = 0;
            virtual int32_t __stdcall put_MinAttenuationCutoff(float) noexcept = 0;
            virtual int32_t __stdcall get_MaxAttenuationCutoff(float*) noexcept = 0;
            virtual int32_t __stdcall put_MaxAttenuationCutoff(float) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ISpringScalarNaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DampingRatio(float*) noexcept = 0;
            virtual int32_t __stdcall put_DampingRatio(float) noexcept = 0;
            virtual int32_t __stdcall get_Period(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_Period(int64_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ISpringVector2NaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DampingRatio(float*) noexcept = 0;
            virtual int32_t __stdcall put_DampingRatio(float) noexcept = 0;
            virtual int32_t __stdcall get_Period(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_Period(int64_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ISpringVector3NaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DampingRatio(float*) noexcept = 0;
            virtual int32_t __stdcall put_DampingRatio(float) noexcept = 0;
            virtual int32_t __stdcall get_Period(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_Period(int64_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ISpriteVisual>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Brush(void**) noexcept = 0;
            virtual int32_t __stdcall put_Brush(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::ISpriteVisual2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Shadow(void**) noexcept = 0;
            virtual int32_t __stdcall put_Shadow(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IStepEasingFunction>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_FinalStep(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_FinalStep(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_InitialStep(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_InitialStep(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_IsFinalStepSingleFrame(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsFinalStepSingleFrame(bool) noexcept = 0;
            virtual int32_t __stdcall get_IsInitialStepSingleFrame(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsInitialStepSingleFrame(bool) noexcept = 0;
            virtual int32_t __stdcall get_StepCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StepCount(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVector2KeyFrameAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall InsertKeyFrame(float, winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall InsertKeyFrameWithEasingFunction(float, winrt::Windows::Foundation::Numerics::float2, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_FinalValue(void**) noexcept = 0;
            virtual int32_t __stdcall put_FinalValue(void*) noexcept = 0;
            virtual int32_t __stdcall get_InitialValue(void**) noexcept = 0;
            virtual int32_t __stdcall put_InitialValue(void*) noexcept = 0;
            virtual int32_t __stdcall get_InitialVelocity(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_InitialVelocity(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimationFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVector3KeyFrameAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall InsertKeyFrame(float, winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall InsertKeyFrameWithEasingFunction(float, winrt::Windows::Foundation::Numerics::float3, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_FinalValue(void**) noexcept = 0;
            virtual int32_t __stdcall put_FinalValue(void*) noexcept = 0;
            virtual int32_t __stdcall get_InitialValue(void**) noexcept = 0;
            virtual int32_t __stdcall put_InitialValue(void*) noexcept = 0;
            virtual int32_t __stdcall get_InitialVelocity(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_InitialVelocity(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimationFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVector4KeyFrameAnimation>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall InsertKeyFrame(float, winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall InsertKeyFrameWithEasingFunction(float, winrt::Windows::Foundation::Numerics::float4, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVisual>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_AnchorPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_AnchorPoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_BackfaceVisibility(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_BackfaceVisibility(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_BorderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_BorderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_CenterPoint(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_CenterPoint(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_Clip(void**) noexcept = 0;
            virtual int32_t __stdcall put_Clip(void*) noexcept = 0;
            virtual int32_t __stdcall get_CompositeMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_CompositeMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_IsVisible(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsVisible(bool) noexcept = 0;
            virtual int32_t __stdcall get_Offset(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_Opacity(float*) noexcept = 0;
            virtual int32_t __stdcall put_Opacity(float) noexcept = 0;
            virtual int32_t __stdcall get_Orientation(winrt::Windows::Foundation::Numerics::quaternion*) noexcept = 0;
            virtual int32_t __stdcall put_Orientation(winrt::Windows::Foundation::Numerics::quaternion) noexcept = 0;
            virtual int32_t __stdcall get_Parent(void**) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngle(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngle(float) noexcept = 0;
            virtual int32_t __stdcall get_RotationAngleInDegrees(float*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAngleInDegrees(float) noexcept = 0;
            virtual int32_t __stdcall get_RotationAxis(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_RotationAxis(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_Scale(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_Scale(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_Size(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Size(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_TransformMatrix(winrt::Windows::Foundation::Numerics::float4x4*) noexcept = 0;
            virtual int32_t __stdcall put_TransformMatrix(winrt::Windows::Foundation::Numerics::float4x4) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVisual2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ParentForTransform(void**) noexcept = 0;
            virtual int32_t __stdcall put_ParentForTransform(void*) noexcept = 0;
            virtual int32_t __stdcall get_RelativeOffsetAdjustment(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_RelativeOffsetAdjustment(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_RelativeSizeAdjustment(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_RelativeSizeAdjustment(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVisual3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsHitTestVisible(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsHitTestVisible(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVisual4>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsPixelSnappingEnabled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsPixelSnappingEnabled(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVisualCollection>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Count(int32_t*) noexcept = 0;
            virtual int32_t __stdcall InsertAbove(void*, void*) noexcept = 0;
            virtual int32_t __stdcall InsertAtBottom(void*) noexcept = 0;
            virtual int32_t __stdcall InsertAtTop(void*) noexcept = 0;
            virtual int32_t __stdcall InsertBelow(void*, void*) noexcept = 0;
            virtual int32_t __stdcall Remove(void*) noexcept = 0;
            virtual int32_t __stdcall RemoveAll() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVisualElement>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVisualElement2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetVisualInternal(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVisualFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Composition::IVisualUnorderedCollection>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Count(int32_t*) noexcept = 0;
            virtual int32_t __stdcall Add(void*) noexcept = 0;
            virtual int32_t __stdcall Remove(void*) noexcept = 0;
            virtual int32_t __stdcall RemoveAll() noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IAmbientLight
    {
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IAmbientLight>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IAmbientLight<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IAmbientLight2
    {
        [[nodiscard]] auto Intensity() const;
        auto Intensity(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IAmbientLight2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IAmbientLight2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IAnimationController
    {
        [[nodiscard]] auto PlaybackRate() const;
        auto PlaybackRate(float value) const;
        [[nodiscard]] auto Progress() const;
        auto Progress(float value) const;
        [[nodiscard]] auto ProgressBehavior() const;
        auto ProgressBehavior(winrt::Microsoft::UI::Composition::AnimationControllerProgressBehavior const& value) const;
        auto Pause() const;
        auto Resume() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IAnimationController>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IAnimationController<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IAnimationControllerStatics
    {
        [[nodiscard]] auto MaxPlaybackRate() const;
        [[nodiscard]] auto MinPlaybackRate() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IAnimationControllerStatics>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IAnimationControllerStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IAnimationObject
    {
        auto PopulatePropertyInfo(param::hstring const& propertyName, winrt::Microsoft::UI::Composition::AnimationPropertyInfo const& propertyInfo) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IAnimationObject>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IAnimationObject<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IAnimationPropertyInfo
    {
        [[nodiscard]] auto AccessMode() const;
        auto AccessMode(winrt::Microsoft::UI::Composition::AnimationPropertyAccessMode const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IAnimationPropertyInfo<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IAnimationPropertyInfo2
    {
        auto GetResolvedCompositionObject() const;
        auto GetResolvedCompositionObjectProperty() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IAnimationPropertyInfo2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IAnimationPropertyInfo2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IBackEasingFunction
    {
        [[nodiscard]] auto Mode() const;
        [[nodiscard]] auto Amplitude() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IBackEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IBackEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IBooleanKeyFrameAnimation
    {
        auto InsertKeyFrame(float normalizedProgressKey, bool value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IBooleanKeyFrameAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IBooleanKeyFrameAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IBounceEasingFunction
    {
        [[nodiscard]] auto Mode() const;
        [[nodiscard]] auto Bounces() const;
        [[nodiscard]] auto Bounciness() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IBounceEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IBounceEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IBounceScalarNaturalMotionAnimation
    {
        [[nodiscard]] auto Acceleration() const;
        auto Acceleration(float value) const;
        [[nodiscard]] auto Restitution() const;
        auto Restitution(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IBounceScalarNaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IBounceScalarNaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IBounceVector2NaturalMotionAnimation
    {
        [[nodiscard]] auto Acceleration() const;
        auto Acceleration(float value) const;
        [[nodiscard]] auto Restitution() const;
        auto Restitution(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IBounceVector2NaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IBounceVector2NaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IBounceVector3NaturalMotionAnimation
    {
        [[nodiscard]] auto Acceleration() const;
        auto Acceleration(float value) const;
        [[nodiscard]] auto Restitution() const;
        auto Restitution(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IBounceVector3NaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IBounceVector3NaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICircleEasingFunction
    {
        [[nodiscard]] auto Mode() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICircleEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICircleEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IColorKeyFrameAnimation
    {
        [[nodiscard]] auto InterpolationColorSpace() const;
        auto InterpolationColorSpace(winrt::Microsoft::UI::Composition::CompositionColorSpace const& value) const;
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::UI::Color const& value) const;
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::UI::Color const& value, winrt::Microsoft::UI::Composition::CompositionEasingFunction const& easingFunction) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IColorKeyFrameAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IColorKeyFrameAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionAnimation
    {
        auto ClearAllParameters() const;
        auto ClearParameter(param::hstring const& key) const;
        auto SetColorParameter(param::hstring const& key, winrt::Windows::UI::Color const& value) const;
        auto SetMatrix3x2Parameter(param::hstring const& key, winrt::Windows::Foundation::Numerics::float3x2 const& value) const;
        auto SetMatrix4x4Parameter(param::hstring const& key, winrt::Windows::Foundation::Numerics::float4x4 const& value) const;
        auto SetQuaternionParameter(param::hstring const& key, winrt::Windows::Foundation::Numerics::quaternion const& value) const;
        auto SetReferenceParameter(param::hstring const& key, winrt::Microsoft::UI::Composition::CompositionObject const& compositionObject) const;
        auto SetScalarParameter(param::hstring const& key, float value) const;
        auto SetVector2Parameter(param::hstring const& key, winrt::Windows::Foundation::Numerics::float2 const& value) const;
        auto SetVector3Parameter(param::hstring const& key, winrt::Windows::Foundation::Numerics::float3 const& value) const;
        auto SetVector4Parameter(param::hstring const& key, winrt::Windows::Foundation::Numerics::float4 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionAnimation2
    {
        auto SetBooleanParameter(param::hstring const& key, bool value) const;
        [[nodiscard]] auto Target() const;
        auto Target(param::hstring const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionAnimation2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionAnimation2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionAnimation3
    {
        [[nodiscard]] auto InitialValueExpressions() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionAnimation3>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionAnimation3<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionAnimation4
    {
        auto SetExpressionReferenceParameter(param::hstring const& parameterName, winrt::Microsoft::UI::Composition::IAnimationObject const& source) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionAnimation4>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionAnimation4<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionAnimationBase
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionAnimationBase>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionAnimationBase<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionAnimationFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionAnimationFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionAnimationFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionAnimationGroup
    {
        [[nodiscard]] auto Count() const;
        auto Add(winrt::Microsoft::UI::Composition::CompositionAnimation const& value) const;
        auto Remove(winrt::Microsoft::UI::Composition::CompositionAnimation const& value) const;
        auto RemoveAll() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionAnimationGroup>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionAnimationGroup<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionApiInformationStatics
    {
        [[nodiscard]] auto ApiVersion() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionApiInformationStatics>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionApiInformationStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionBackdropBrush
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionBackdropBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionBackdropBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionBatchCompletedEventArgs
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionBatchCompletedEventArgs>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionBatchCompletedEventArgs<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionBrush
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionBrushFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionBrushFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionBrushFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionCapabilities
    {
        auto AreEffectsSupported() const;
        auto AreEffectsFast() const;
        auto Changed(winrt::Windows::Foundation::TypedEventHandler<winrt::Microsoft::UI::Composition::CompositionCapabilities, winrt::Windows::Foundation::IInspectable> const& handler) const;
        using Changed_revoker = impl::event_revoker<winrt::Microsoft::UI::Composition::ICompositionCapabilities, &impl::abi_t<winrt::Microsoft::UI::Composition::ICompositionCapabilities>::remove_Changed>;
        [[nodiscard]] auto Changed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Microsoft::UI::Composition::CompositionCapabilities, winrt::Windows::Foundation::IInspectable> const& handler) const;
        auto Changed(winrt::event_token const& token) const noexcept;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionCapabilities>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionCapabilities<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionClip
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionClip>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionClip<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionClip2
    {
        [[nodiscard]] auto AnchorPoint() const;
        auto AnchorPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto CenterPoint() const;
        auto CenterPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto RotationAngle() const;
        auto RotationAngle(float value) const;
        [[nodiscard]] auto RotationAngleInDegrees() const;
        auto RotationAngleInDegrees(float value) const;
        [[nodiscard]] auto Scale() const;
        auto Scale(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto TransformMatrix() const;
        auto TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionClip2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionClip2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionClipFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionClipFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionClipFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionColorBrush
    {
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionColorBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionColorBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionColorGradientStop
    {
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionColorGradientStop>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionColorGradientStop<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionColorGradientStopCollection
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionColorGradientStopCollection>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionColorGradientStopCollection<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionCommitBatch
    {
        [[nodiscard]] auto IsActive() const;
        [[nodiscard]] auto IsEnded() const;
        auto Completed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable, winrt::Microsoft::UI::Composition::CompositionBatchCompletedEventArgs> const& handler) const;
        using Completed_revoker = impl::event_revoker<winrt::Microsoft::UI::Composition::ICompositionCommitBatch, &impl::abi_t<winrt::Microsoft::UI::Composition::ICompositionCommitBatch>::remove_Completed>;
        [[nodiscard]] auto Completed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable, winrt::Microsoft::UI::Composition::CompositionBatchCompletedEventArgs> const& handler) const;
        auto Completed(winrt::event_token const& token) const noexcept;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionCommitBatch>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionCommitBatch<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionContainerShape
    {
        [[nodiscard]] auto Shapes() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionContainerShape>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionContainerShape<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionDrawingSurface
    {
        [[nodiscard]] auto AlphaMode() const;
        [[nodiscard]] auto PixelFormat() const;
        [[nodiscard]] auto Size() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionDrawingSurface<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionDrawingSurface2
    {
        [[nodiscard]] auto SizeInt32() const;
        auto Resize(winrt::Windows::Graphics::SizeInt32 const& sizePixels) const;
        auto Scroll(winrt::Windows::Graphics::PointInt32 const& offset) const;
        auto Scroll(winrt::Windows::Graphics::PointInt32 const& offset, winrt::Windows::Graphics::RectInt32 const& scrollRect) const;
        auto ScrollWithClip(winrt::Windows::Graphics::PointInt32 const& offset, winrt::Windows::Graphics::RectInt32 const& clipRect) const;
        auto ScrollWithClip(winrt::Windows::Graphics::PointInt32 const& offset, winrt::Windows::Graphics::RectInt32 const& clipRect, winrt::Windows::Graphics::RectInt32 const& scrollRect) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionDrawingSurface2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionDrawingSurface2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionDrawingSurfaceFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionDrawingSurfaceFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionDrawingSurfaceFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionEasingFunction
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionEasingFunctionFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionEasingFunctionFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionEasingFunctionStatics
    {
        auto CreateCubicBezierEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner, winrt::Windows::Foundation::Numerics::float2 const& controlPoint1, winrt::Windows::Foundation::Numerics::float2 const& controlPoint2) const;
        auto CreateLinearEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner) const;
        auto CreateStepEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner) const;
        auto CreateStepEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner, int32_t stepCount) const;
        auto CreateBackEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner, winrt::Microsoft::UI::Composition::CompositionEasingFunctionMode const& mode, float amplitude) const;
        auto CreateBounceEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner, winrt::Microsoft::UI::Composition::CompositionEasingFunctionMode const& mode, int32_t bounces, float bounciness) const;
        auto CreateCircleEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner, winrt::Microsoft::UI::Composition::CompositionEasingFunctionMode const& mode) const;
        auto CreateElasticEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner, winrt::Microsoft::UI::Composition::CompositionEasingFunctionMode const& mode, int32_t oscillations, float springiness) const;
        auto CreateExponentialEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner, winrt::Microsoft::UI::Composition::CompositionEasingFunctionMode const& mode, float exponent) const;
        auto CreatePowerEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner, winrt::Microsoft::UI::Composition::CompositionEasingFunctionMode const& mode, float power) const;
        auto CreateSineEasingFunction(winrt::Microsoft::UI::Composition::Compositor const& owner, winrt::Microsoft::UI::Composition::CompositionEasingFunctionMode const& mode) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionEasingFunctionStatics>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionEasingFunctionStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionEffectBrush
    {
        auto GetSourceParameter(param::hstring const& name) const;
        auto SetSourceParameter(param::hstring const& name, winrt::Microsoft::UI::Composition::CompositionBrush const& source) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionEffectBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionEffectBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionEffectFactory
    {
        auto CreateBrush() const;
        [[nodiscard]] auto ExtendedError() const;
        [[nodiscard]] auto LoadStatus() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionEffectFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionEffectFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionEffectSourceParameter
    {
        [[nodiscard]] auto Name() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameter>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionEffectSourceParameter<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionEffectSourceParameterFactory
    {
        auto Create(param::hstring const& name) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionEffectSourceParameterFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionEffectSourceParameterFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionEllipseGeometry
    {
        [[nodiscard]] auto Center() const;
        auto Center(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Radius() const;
        auto Radius(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionEllipseGeometry>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionEllipseGeometry<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGeometricClip
    {
        [[nodiscard]] auto Geometry() const;
        auto Geometry(winrt::Microsoft::UI::Composition::CompositionGeometry const& value) const;
        [[nodiscard]] auto ViewBox() const;
        auto ViewBox(winrt::Microsoft::UI::Composition::CompositionViewBox const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGeometricClip>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGeometricClip<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGeometry
    {
        [[nodiscard]] auto TrimEnd() const;
        auto TrimEnd(float value) const;
        [[nodiscard]] auto TrimOffset() const;
        auto TrimOffset(float value) const;
        [[nodiscard]] auto TrimStart() const;
        auto TrimStart(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGeometry>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGeometry<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGeometryFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGeometryFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGeometryFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGradientBrush
    {
        [[nodiscard]] auto AnchorPoint() const;
        auto AnchorPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto CenterPoint() const;
        auto CenterPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto ColorStops() const;
        [[nodiscard]] auto ExtendMode() const;
        auto ExtendMode(winrt::Microsoft::UI::Composition::CompositionGradientExtendMode const& value) const;
        [[nodiscard]] auto InterpolationSpace() const;
        auto InterpolationSpace(winrt::Microsoft::UI::Composition::CompositionColorSpace const& value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto RotationAngle() const;
        auto RotationAngle(float value) const;
        [[nodiscard]] auto RotationAngleInDegrees() const;
        auto RotationAngleInDegrees(float value) const;
        [[nodiscard]] auto Scale() const;
        auto Scale(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto TransformMatrix() const;
        auto TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGradientBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGradientBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGradientBrush2
    {
        [[nodiscard]] auto MappingMode() const;
        auto MappingMode(winrt::Microsoft::UI::Composition::CompositionMappingMode const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGradientBrush2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGradientBrush2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGradientBrushFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGradientBrushFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGradientBrushFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGraphicsDevice
    {
        auto CreateDrawingSurface(winrt::Windows::Foundation::Size const& sizePixels, winrt::Microsoft::Graphics::DirectX::DirectXPixelFormat const& pixelFormat, winrt::Microsoft::Graphics::DirectX::DirectXAlphaMode const& alphaMode) const;
        auto RenderingDeviceReplaced(winrt::Windows::Foundation::TypedEventHandler<winrt::Microsoft::UI::Composition::CompositionGraphicsDevice, winrt::Microsoft::UI::Composition::RenderingDeviceReplacedEventArgs> const& handler) const;
        using RenderingDeviceReplaced_revoker = impl::event_revoker<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice, &impl::abi_t<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice>::remove_RenderingDeviceReplaced>;
        [[nodiscard]] auto RenderingDeviceReplaced(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Microsoft::UI::Composition::CompositionGraphicsDevice, winrt::Microsoft::UI::Composition::RenderingDeviceReplacedEventArgs> const& handler) const;
        auto RenderingDeviceReplaced(winrt::event_token const& token) const noexcept;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGraphicsDevice<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGraphicsDevice2
    {
        auto CreateDrawingSurface2(winrt::Windows::Graphics::SizeInt32 const& sizePixels, winrt::Microsoft::Graphics::DirectX::DirectXPixelFormat const& pixelFormat, winrt::Microsoft::Graphics::DirectX::DirectXAlphaMode const& alphaMode) const;
        auto CreateVirtualDrawingSurface(winrt::Windows::Graphics::SizeInt32 const& sizePixels, winrt::Microsoft::Graphics::DirectX::DirectXPixelFormat const& pixelFormat, winrt::Microsoft::Graphics::DirectX::DirectXAlphaMode const& alphaMode) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGraphicsDevice2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGraphicsDevice3
    {
        auto CreateMipmapSurface(winrt::Windows::Graphics::SizeInt32 const& sizePixels, winrt::Microsoft::Graphics::DirectX::DirectXPixelFormat const& pixelFormat, winrt::Microsoft::Graphics::DirectX::DirectXAlphaMode const& alphaMode) const;
        auto Trim() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice3>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGraphicsDevice3<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionGraphicsDevice4
    {
        auto CaptureAsync(winrt::Microsoft::UI::Composition::Visual const& captureVisual, winrt::Windows::Graphics::SizeInt32 const& size, winrt::Microsoft::Graphics::DirectX::DirectXPixelFormat const& pixelFormat, winrt::Microsoft::Graphics::DirectX::DirectXAlphaMode const& alphaMode, float sdrBoost) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionGraphicsDevice4>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionGraphicsDevice4<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionLight
    {
        [[nodiscard]] auto Targets() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionLight>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionLight<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionLight2
    {
        [[nodiscard]] auto ExclusionsFromTargets() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionLight2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionLight2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionLight3
    {
        [[nodiscard]] auto IsEnabled() const;
        auto IsEnabled(bool value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionLight3>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionLight3<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionLightFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionLightFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionLightFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionLineGeometry
    {
        [[nodiscard]] auto Start() const;
        auto Start(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto End() const;
        auto End(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionLineGeometry>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionLineGeometry<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionLinearGradientBrush
    {
        [[nodiscard]] auto EndPoint() const;
        auto EndPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto StartPoint() const;
        auto StartPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionLinearGradientBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionLinearGradientBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionMaskBrush
    {
        [[nodiscard]] auto Mask() const;
        auto Mask(winrt::Microsoft::UI::Composition::CompositionBrush const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Microsoft::UI::Composition::CompositionBrush const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionMaskBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionMaskBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionMipmapSurface
    {
        [[nodiscard]] auto LevelCount() const;
        [[nodiscard]] auto AlphaMode() const;
        [[nodiscard]] auto PixelFormat() const;
        [[nodiscard]] auto SizeInt32() const;
        auto GetDrawingSurfaceForLevel(uint32_t level) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionMipmapSurface>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionMipmapSurface<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionNineGridBrush
    {
        [[nodiscard]] auto BottomInset() const;
        auto BottomInset(float value) const;
        [[nodiscard]] auto BottomInsetScale() const;
        auto BottomInsetScale(float value) const;
        [[nodiscard]] auto IsCenterHollow() const;
        auto IsCenterHollow(bool value) const;
        [[nodiscard]] auto LeftInset() const;
        auto LeftInset(float value) const;
        [[nodiscard]] auto LeftInsetScale() const;
        auto LeftInsetScale(float value) const;
        [[nodiscard]] auto RightInset() const;
        auto RightInset(float value) const;
        [[nodiscard]] auto RightInsetScale() const;
        auto RightInsetScale(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Microsoft::UI::Composition::CompositionBrush const& value) const;
        [[nodiscard]] auto TopInset() const;
        auto TopInset(float value) const;
        [[nodiscard]] auto TopInsetScale() const;
        auto TopInsetScale(float value) const;
        auto SetInsets(float inset) const;
        auto SetInsets(float left, float top, float right, float bottom) const;
        auto SetInsetScales(float scale) const;
        auto SetInsetScales(float left, float top, float right, float bottom) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionNineGridBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionNineGridBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionObject
    {
        [[nodiscard]] auto Compositor() const;
        [[nodiscard]] auto Properties() const;
        auto StartAnimation(param::hstring const& propertyName, winrt::Microsoft::UI::Composition::CompositionAnimation const& animation) const;
        auto StopAnimation(param::hstring const& propertyName) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionObject>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionObject<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionObject2
    {
        [[nodiscard]] auto Comment() const;
        auto Comment(param::hstring const& value) const;
        [[nodiscard]] auto ImplicitAnimations() const;
        auto ImplicitAnimations(winrt::Microsoft::UI::Composition::ImplicitAnimationCollection const& value) const;
        auto StartAnimationGroup(winrt::Microsoft::UI::Composition::ICompositionAnimationBase const& value) const;
        auto StopAnimationGroup(winrt::Microsoft::UI::Composition::ICompositionAnimationBase const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionObject2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionObject2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionObject3
    {
        [[nodiscard]] auto DispatcherQueue() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionObject3>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionObject3<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionObject4
    {
        auto TryGetAnimationController(param::hstring const& propertyName) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionObject4>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionObject4<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionObject5
    {
        auto StartAnimation(param::hstring const& propertyName, winrt::Microsoft::UI::Composition::CompositionAnimation const& animation, winrt::Microsoft::UI::Composition::AnimationController const& animationController) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionObject5>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionObject5<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionObjectFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionObjectFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionObjectFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionObjectStatics
    {
        auto StartAnimationWithIAnimationObject(winrt::Microsoft::UI::Composition::IAnimationObject const& target, param::hstring const& propertyName, winrt::Microsoft::UI::Composition::CompositionAnimation const& animation) const;
        auto StartAnimationGroupWithIAnimationObject(winrt::Microsoft::UI::Composition::IAnimationObject const& target, winrt::Microsoft::UI::Composition::ICompositionAnimationBase const& animation) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionObjectStatics>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionObjectStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionPath
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionPath>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionPath<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionPathFactory
    {
        auto Create(winrt::Windows::Graphics::IGeometrySource2D const& source) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionPathFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionPathFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionPathGeometry
    {
        [[nodiscard]] auto Path() const;
        auto Path(winrt::Microsoft::UI::Composition::CompositionPath const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionPathGeometry>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionPathGeometry<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionProjectedShadow
    {
        [[nodiscard]] auto BlurRadiusMultiplier() const;
        auto BlurRadiusMultiplier(float value) const;
        [[nodiscard]] auto Casters() const;
        [[nodiscard]] auto LightSource() const;
        auto LightSource(winrt::Microsoft::UI::Composition::CompositionLight const& value) const;
        [[nodiscard]] auto MaxBlurRadius() const;
        auto MaxBlurRadius(float value) const;
        [[nodiscard]] auto MinBlurRadius() const;
        auto MinBlurRadius(float value) const;
        [[nodiscard]] auto Receivers() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionProjectedShadow>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionProjectedShadow<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionProjectedShadowCaster
    {
        [[nodiscard]] auto Brush() const;
        auto Brush(winrt::Microsoft::UI::Composition::CompositionBrush const& value) const;
        [[nodiscard]] auto CastingVisual() const;
        auto CastingVisual(winrt::Microsoft::UI::Composition::Visual const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCaster>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionProjectedShadowCaster<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionProjectedShadowCasterCollection
    {
        [[nodiscard]] auto Count() const;
        auto InsertAbove(winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster const& newCaster, winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster const& reference) const;
        auto InsertAtBottom(winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster const& newCaster) const;
        auto InsertAtTop(winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster const& newCaster) const;
        auto InsertBelow(winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster const& newCaster, winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster const& reference) const;
        auto Remove(winrt::Microsoft::UI::Composition::CompositionProjectedShadowCaster const& caster) const;
        auto RemoveAll() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollection>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionProjectedShadowCasterCollection<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionProjectedShadowCasterCollectionStatics
    {
        [[nodiscard]] auto MaxRespectedCasters() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowCasterCollectionStatics>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionProjectedShadowCasterCollectionStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionProjectedShadowReceiver
    {
        [[nodiscard]] auto ReceivingVisual() const;
        auto ReceivingVisual(winrt::Microsoft::UI::Composition::Visual const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiver>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionProjectedShadowReceiver<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionProjectedShadowReceiverUnorderedCollection
    {
        auto Add(winrt::Microsoft::UI::Composition::CompositionProjectedShadowReceiver const& value) const;
        [[nodiscard]] auto Count() const;
        auto Remove(winrt::Microsoft::UI::Composition::CompositionProjectedShadowReceiver const& value) const;
        auto RemoveAll() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionProjectedShadowReceiverUnorderedCollection>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionProjectedShadowReceiverUnorderedCollection<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionPropertySet
    {
        auto InsertColor(param::hstring const& propertyName, winrt::Windows::UI::Color const& value) const;
        auto InsertMatrix3x2(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float3x2 const& value) const;
        auto InsertMatrix4x4(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float4x4 const& value) const;
        auto InsertQuaternion(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::quaternion const& value) const;
        auto InsertScalar(param::hstring const& propertyName, float value) const;
        auto InsertVector2(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float2 const& value) const;
        auto InsertVector3(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float3 const& value) const;
        auto InsertVector4(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float4 const& value) const;
        auto TryGetColor(param::hstring const& propertyName, winrt::Windows::UI::Color& value) const;
        auto TryGetMatrix3x2(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float3x2& value) const;
        auto TryGetMatrix4x4(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float4x4& value) const;
        auto TryGetQuaternion(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::quaternion& value) const;
        auto TryGetScalar(param::hstring const& propertyName, float& value) const;
        auto TryGetVector2(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float2& value) const;
        auto TryGetVector3(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float3& value) const;
        auto TryGetVector4(param::hstring const& propertyName, winrt::Windows::Foundation::Numerics::float4& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionPropertySet>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionPropertySet<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionPropertySet2
    {
        auto InsertBoolean(param::hstring const& propertyName, bool value) const;
        auto TryGetBoolean(param::hstring const& propertyName, bool& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionPropertySet2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionPropertySet2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionRadialGradientBrush
    {
        [[nodiscard]] auto EllipseCenter() const;
        auto EllipseCenter(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto EllipseRadius() const;
        auto EllipseRadius(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto GradientOriginOffset() const;
        auto GradientOriginOffset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionRadialGradientBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionRadialGradientBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionRectangleGeometry
    {
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Size() const;
        auto Size(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionRectangleGeometry>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionRectangleGeometry<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionRoundedRectangleGeometry
    {
        [[nodiscard]] auto CornerRadius() const;
        auto CornerRadius(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Size() const;
        auto Size(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionRoundedRectangleGeometry>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionRoundedRectangleGeometry<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionScopedBatch
    {
        [[nodiscard]] auto IsActive() const;
        [[nodiscard]] auto IsEnded() const;
        auto End() const;
        auto Resume() const;
        auto Suspend() const;
        auto Completed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable, winrt::Microsoft::UI::Composition::CompositionBatchCompletedEventArgs> const& handler) const;
        using Completed_revoker = impl::event_revoker<winrt::Microsoft::UI::Composition::ICompositionScopedBatch, &impl::abi_t<winrt::Microsoft::UI::Composition::ICompositionScopedBatch>::remove_Completed>;
        [[nodiscard]] auto Completed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable, winrt::Microsoft::UI::Composition::CompositionBatchCompletedEventArgs> const& handler) const;
        auto Completed(winrt::event_token const& token) const noexcept;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionScopedBatch>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionScopedBatch<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionShadow
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionShadow>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionShadow<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionShadowFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionShadowFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionShadowFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionShape
    {
        [[nodiscard]] auto CenterPoint() const;
        auto CenterPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto RotationAngle() const;
        auto RotationAngle(float value) const;
        [[nodiscard]] auto RotationAngleInDegrees() const;
        auto RotationAngleInDegrees(float value) const;
        [[nodiscard]] auto Scale() const;
        auto Scale(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto TransformMatrix() const;
        auto TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionShape>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionShape<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionShapeFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionShapeFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionShapeFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionSpriteShape
    {
        [[nodiscard]] auto FillBrush() const;
        auto FillBrush(winrt::Microsoft::UI::Composition::CompositionBrush const& value) const;
        [[nodiscard]] auto Geometry() const;
        auto Geometry(winrt::Microsoft::UI::Composition::CompositionGeometry const& value) const;
        [[nodiscard]] auto IsStrokeNonScaling() const;
        auto IsStrokeNonScaling(bool value) const;
        [[nodiscard]] auto StrokeBrush() const;
        auto StrokeBrush(winrt::Microsoft::UI::Composition::CompositionBrush const& value) const;
        [[nodiscard]] auto StrokeDashArray() const;
        [[nodiscard]] auto StrokeDashCap() const;
        auto StrokeDashCap(winrt::Microsoft::UI::Composition::CompositionStrokeCap const& value) const;
        [[nodiscard]] auto StrokeDashOffset() const;
        auto StrokeDashOffset(float value) const;
        [[nodiscard]] auto StrokeEndCap() const;
        auto StrokeEndCap(winrt::Microsoft::UI::Composition::CompositionStrokeCap const& value) const;
        [[nodiscard]] auto StrokeLineJoin() const;
        auto StrokeLineJoin(winrt::Microsoft::UI::Composition::CompositionStrokeLineJoin const& value) const;
        [[nodiscard]] auto StrokeMiterLimit() const;
        auto StrokeMiterLimit(float value) const;
        [[nodiscard]] auto StrokeStartCap() const;
        auto StrokeStartCap(winrt::Microsoft::UI::Composition::CompositionStrokeCap const& value) const;
        [[nodiscard]] auto StrokeThickness() const;
        auto StrokeThickness(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionSpriteShape>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionSpriteShape<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionSupportsSystemBackdrop
    {
        [[nodiscard]] auto SystemBackdrop() const;
        auto SystemBackdrop(winrt::Windows::UI::Composition::CompositionBrush const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionSupportsSystemBackdrop>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionSupportsSystemBackdrop<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionSurface
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionSurface>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionSurface<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionSurfaceBrush
    {
        [[nodiscard]] auto BitmapInterpolationMode() const;
        auto BitmapInterpolationMode(winrt::Microsoft::UI::Composition::CompositionBitmapInterpolationMode const& value) const;
        [[nodiscard]] auto HorizontalAlignmentRatio() const;
        auto HorizontalAlignmentRatio(float value) const;
        [[nodiscard]] auto Stretch() const;
        auto Stretch(winrt::Microsoft::UI::Composition::CompositionStretch const& value) const;
        [[nodiscard]] auto Surface() const;
        auto Surface(winrt::Microsoft::UI::Composition::ICompositionSurface const& value) const;
        [[nodiscard]] auto VerticalAlignmentRatio() const;
        auto VerticalAlignmentRatio(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionSurfaceBrush<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionSurfaceBrush2
    {
        [[nodiscard]] auto AnchorPoint() const;
        auto AnchorPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto CenterPoint() const;
        auto CenterPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto RotationAngle() const;
        auto RotationAngle(float value) const;
        [[nodiscard]] auto RotationAngleInDegrees() const;
        auto RotationAngleInDegrees(float value) const;
        [[nodiscard]] auto Scale() const;
        auto Scale(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto TransformMatrix() const;
        auto TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionSurfaceBrush2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionSurfaceBrush3
    {
        [[nodiscard]] auto SnapToPixels() const;
        auto SnapToPixels(bool value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionSurfaceBrush3>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionSurfaceBrush3<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionSurfaceFacade
    {
        auto GetRealSurface() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionSurfaceFacade>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionSurfaceFacade<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionTransform
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionTransform>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionTransform<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionTransformFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionTransformFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionTransformFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionViewBox
    {
        [[nodiscard]] auto HorizontalAlignmentRatio() const;
        auto HorizontalAlignmentRatio(float value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Size() const;
        auto Size(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Stretch() const;
        auto Stretch(winrt::Microsoft::UI::Composition::CompositionStretch const& value) const;
        [[nodiscard]] auto VerticalAlignmentRatio() const;
        auto VerticalAlignmentRatio(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionViewBox>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionViewBox<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionVirtualDrawingSurface
    {
        auto Trim(array_view<winrt::Windows::Graphics::RectInt32 const> rects) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurface>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionVirtualDrawingSurface<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionVirtualDrawingSurfaceFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionVirtualDrawingSurfaceFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionVirtualDrawingSurfaceFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositionVisualSurface
    {
        [[nodiscard]] auto SourceVisual() const;
        auto SourceVisual(winrt::Microsoft::UI::Composition::Visual const& value) const;
        [[nodiscard]] auto SourceOffset() const;
        auto SourceOffset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto SourceSize() const;
        auto SourceSize(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositionVisualSurface>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositionVisualSurface<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositor
    {
        auto CreateColorKeyFrameAnimation() const;
        auto CreateColorBrush() const;
        auto CreateColorBrush(winrt::Windows::UI::Color const& color) const;
        auto CreateContainerVisual() const;
        auto CreateCubicBezierEasingFunction(winrt::Windows::Foundation::Numerics::float2 const& controlPoint1, winrt::Windows::Foundation::Numerics::float2 const& controlPoint2) const;
        auto CreateEffectFactory(winrt::Windows::Graphics::Effects::IGraphicsEffect const& graphicsEffect) const;
        auto CreateEffectFactory(winrt::Windows::Graphics::Effects::IGraphicsEffect const& graphicsEffect, param::iterable<hstring> const& animatableProperties) const;
        auto CreateExpressionAnimation() const;
        auto CreateExpressionAnimation(param::hstring const& expression) const;
        auto CreateInsetClip() const;
        auto CreateInsetClip(float leftInset, float topInset, float rightInset, float bottomInset) const;
        auto CreateLinearEasingFunction() const;
        auto CreatePropertySet() const;
        auto CreateQuaternionKeyFrameAnimation() const;
        auto CreateScalarKeyFrameAnimation() const;
        auto CreateScopedBatch(winrt::Microsoft::UI::Composition::CompositionBatchTypes const& batchType) const;
        auto CreateSpriteVisual() const;
        auto CreateSurfaceBrush() const;
        auto CreateSurfaceBrush(winrt::Microsoft::UI::Composition::ICompositionSurface const& surface) const;
        auto CreateVector2KeyFrameAnimation() const;
        auto CreateVector3KeyFrameAnimation() const;
        auto CreateVector4KeyFrameAnimation() const;
        auto GetCommitBatch(winrt::Microsoft::UI::Composition::CompositionBatchTypes const& batchType) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositor>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositor<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositor2
    {
        auto CreateAmbientLight() const;
        auto CreateAnimationGroup() const;
        auto CreateBackdropBrush() const;
        auto CreateDistantLight() const;
        auto CreateDropShadow() const;
        auto CreateImplicitAnimationCollection() const;
        auto CreateLayerVisual() const;
        auto CreateMaskBrush() const;
        auto CreateNineGridBrush() const;
        auto CreatePointLight() const;
        auto CreateSpotLight() const;
        auto CreateStepEasingFunction() const;
        auto CreateStepEasingFunction(int32_t stepCount) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositor2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositor2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositor4
    {
        auto CreateColorGradientStop() const;
        auto CreateColorGradientStop(float offset, winrt::Windows::UI::Color const& color) const;
        auto CreateLinearGradientBrush() const;
        auto CreateSpringScalarAnimation() const;
        auto CreateSpringVector2Animation() const;
        auto CreateSpringVector3Animation() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositor4>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositor4<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositor5
    {
        [[nodiscard]] auto Comment() const;
        auto Comment(param::hstring const& value) const;
        [[nodiscard]] auto GlobalPlaybackRate() const;
        auto GlobalPlaybackRate(float value) const;
        auto CreateBounceScalarAnimation() const;
        auto CreateBounceVector2Animation() const;
        auto CreateBounceVector3Animation() const;
        auto CreateContainerShape() const;
        auto CreateEllipseGeometry() const;
        auto CreateLineGeometry() const;
        auto CreatePathGeometry() const;
        auto CreatePathGeometry(winrt::Microsoft::UI::Composition::CompositionPath const& path) const;
        auto CreatePathKeyFrameAnimation() const;
        auto CreateRectangleGeometry() const;
        auto CreateRoundedRectangleGeometry() const;
        auto CreateShapeVisual() const;
        auto CreateSpriteShape() const;
        auto CreateSpriteShape(winrt::Microsoft::UI::Composition::CompositionGeometry const& geometry) const;
        auto CreateViewBox() const;
        auto RequestCommitAsync() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositor5>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositor5<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositor6
    {
        auto CreateGeometricClip() const;
        auto CreateGeometricClip(winrt::Microsoft::UI::Composition::CompositionGeometry const& geometry) const;
        auto CreateRedirectVisual() const;
        auto CreateRedirectVisual(winrt::Microsoft::UI::Composition::Visual const& source) const;
        auto CreateBooleanKeyFrameAnimation() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositor6>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositor6<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositor7
    {
        [[nodiscard]] auto DispatcherQueue() const;
        auto CreateAnimationPropertyInfo() const;
        auto CreateRectangleClip() const;
        auto CreateRectangleClip(float left, float top, float right, float bottom) const;
        auto CreateRectangleClip(float left, float top, float right, float bottom, winrt::Windows::Foundation::Numerics::float2 const& topLeftRadius, winrt::Windows::Foundation::Numerics::float2 const& topRightRadius, winrt::Windows::Foundation::Numerics::float2 const& bottomRightRadius, winrt::Windows::Foundation::Numerics::float2 const& bottomLeftRadius) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositor7>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositor7<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositor8
    {
        auto CreateAnimationController() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositor8>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositor8<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositorStatics
    {
        [[nodiscard]] auto MaxGlobalPlaybackRate() const;
        [[nodiscard]] auto MinGlobalPlaybackRate() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositorStatics>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositorStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositorWithProjectedShadow
    {
        auto CreateProjectedShadowCaster() const;
        auto CreateProjectedShadow() const;
        auto CreateProjectedShadowReceiver() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositorWithProjectedShadow>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositorWithProjectedShadow<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositorWithRadialGradient
    {
        auto CreateRadialGradientBrush() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositorWithRadialGradient>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositorWithRadialGradient<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICompositorWithVisualSurface
    {
        auto CreateVisualSurface() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICompositorWithVisualSurface>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICompositorWithVisualSurface<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IContainerVisual
    {
        [[nodiscard]] auto Children() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IContainerVisual>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IContainerVisual<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IContainerVisualFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IContainerVisualFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IContainerVisualFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ICubicBezierEasingFunction
    {
        [[nodiscard]] auto ControlPoint1() const;
        [[nodiscard]] auto ControlPoint2() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ICubicBezierEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ICubicBezierEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IDistantLight
    {
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto CoordinateSpace() const;
        auto CoordinateSpace(winrt::Microsoft::UI::Composition::Visual const& value) const;
        [[nodiscard]] auto Direction() const;
        auto Direction(winrt::Windows::Foundation::Numerics::float3 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IDistantLight>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IDistantLight<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IDistantLight2
    {
        [[nodiscard]] auto Intensity() const;
        auto Intensity(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IDistantLight2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IDistantLight2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IDropShadow
    {
        [[nodiscard]] auto BlurRadius() const;
        auto BlurRadius(float value) const;
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto Mask() const;
        auto Mask(winrt::Microsoft::UI::Composition::CompositionBrush const& value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto Opacity() const;
        auto Opacity(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IDropShadow>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IDropShadow<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IDropShadow2
    {
        [[nodiscard]] auto SourcePolicy() const;
        auto SourcePolicy(winrt::Microsoft::UI::Composition::CompositionDropShadowSourcePolicy const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IDropShadow2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IDropShadow2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IElasticEasingFunction
    {
        [[nodiscard]] auto Mode() const;
        [[nodiscard]] auto Oscillations() const;
        [[nodiscard]] auto Springiness() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IElasticEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IElasticEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IExponentialEasingFunction
    {
        [[nodiscard]] auto Mode() const;
        [[nodiscard]] auto Exponent() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IExponentialEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IExponentialEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IExpressionAnimation
    {
        [[nodiscard]] auto Expression() const;
        auto Expression(param::hstring const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IExpressionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IExpressionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IImplicitAnimationCollection
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IImplicitAnimationCollection>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IImplicitAnimationCollection<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IInsetClip
    {
        [[nodiscard]] auto BottomInset() const;
        auto BottomInset(float value) const;
        [[nodiscard]] auto LeftInset() const;
        auto LeftInset(float value) const;
        [[nodiscard]] auto RightInset() const;
        auto RightInset(float value) const;
        [[nodiscard]] auto TopInset() const;
        auto TopInset(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IInsetClip>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IInsetClip<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IKeyFrameAnimation
    {
        [[nodiscard]] auto DelayTime() const;
        auto DelayTime(winrt::Windows::Foundation::TimeSpan const& value) const;
        [[nodiscard]] auto Duration() const;
        auto Duration(winrt::Windows::Foundation::TimeSpan const& value) const;
        [[nodiscard]] auto IterationBehavior() const;
        auto IterationBehavior(winrt::Microsoft::UI::Composition::AnimationIterationBehavior const& value) const;
        [[nodiscard]] auto IterationCount() const;
        auto IterationCount(int32_t value) const;
        [[nodiscard]] auto KeyFrameCount() const;
        [[nodiscard]] auto StopBehavior() const;
        auto StopBehavior(winrt::Microsoft::UI::Composition::AnimationStopBehavior const& value) const;
        auto InsertExpressionKeyFrame(float normalizedProgressKey, param::hstring const& value) const;
        auto InsertExpressionKeyFrame(float normalizedProgressKey, param::hstring const& value, winrt::Microsoft::UI::Composition::CompositionEasingFunction const& easingFunction) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IKeyFrameAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IKeyFrameAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IKeyFrameAnimation2
    {
        [[nodiscard]] auto Direction() const;
        auto Direction(winrt::Microsoft::UI::Composition::AnimationDirection const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IKeyFrameAnimation2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IKeyFrameAnimation2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IKeyFrameAnimation3
    {
        [[nodiscard]] auto DelayBehavior() const;
        auto DelayBehavior(winrt::Microsoft::UI::Composition::AnimationDelayBehavior const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IKeyFrameAnimation3>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IKeyFrameAnimation3<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IKeyFrameAnimationFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IKeyFrameAnimationFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IKeyFrameAnimationFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ILayerVisual
    {
        [[nodiscard]] auto Effect() const;
        auto Effect(winrt::Microsoft::UI::Composition::CompositionEffectBrush const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ILayerVisual>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ILayerVisual<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ILayerVisual2
    {
        [[nodiscard]] auto Shadow() const;
        auto Shadow(winrt::Microsoft::UI::Composition::CompositionShadow const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ILayerVisual2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ILayerVisual2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ILinearEasingFunction
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ILinearEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ILinearEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_INaturalMotionAnimation
    {
        [[nodiscard]] auto DelayBehavior() const;
        auto DelayBehavior(winrt::Microsoft::UI::Composition::AnimationDelayBehavior const& value) const;
        [[nodiscard]] auto DelayTime() const;
        auto DelayTime(winrt::Windows::Foundation::TimeSpan const& value) const;
        [[nodiscard]] auto StopBehavior() const;
        auto StopBehavior(winrt::Microsoft::UI::Composition::AnimationStopBehavior const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::INaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_INaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_INaturalMotionAnimationFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::INaturalMotionAnimationFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_INaturalMotionAnimationFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IPathKeyFrameAnimation
    {
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Microsoft::UI::Composition::CompositionPath const& path) const;
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Microsoft::UI::Composition::CompositionPath const& path, winrt::Microsoft::UI::Composition::CompositionEasingFunction const& easingFunction) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IPathKeyFrameAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IPathKeyFrameAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IPointLight
    {
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto ConstantAttenuation() const;
        auto ConstantAttenuation(float value) const;
        [[nodiscard]] auto CoordinateSpace() const;
        auto CoordinateSpace(winrt::Microsoft::UI::Composition::Visual const& value) const;
        [[nodiscard]] auto LinearAttenuation() const;
        auto LinearAttenuation(float value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto QuadraticAttenuation() const;
        auto QuadraticAttenuation(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IPointLight>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IPointLight<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IPointLight2
    {
        [[nodiscard]] auto Intensity() const;
        auto Intensity(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IPointLight2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IPointLight2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IPointLight3
    {
        [[nodiscard]] auto MinAttenuationCutoff() const;
        auto MinAttenuationCutoff(float value) const;
        [[nodiscard]] auto MaxAttenuationCutoff() const;
        auto MaxAttenuationCutoff(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IPointLight3>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IPointLight3<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IPowerEasingFunction
    {
        [[nodiscard]] auto Mode() const;
        [[nodiscard]] auto Power() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IPowerEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IPowerEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IQuaternionKeyFrameAnimation
    {
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::Foundation::Numerics::quaternion const& value) const;
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::Foundation::Numerics::quaternion const& value, winrt::Microsoft::UI::Composition::CompositionEasingFunction const& easingFunction) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IQuaternionKeyFrameAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IQuaternionKeyFrameAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IRectangleClip
    {
        [[nodiscard]] auto Bottom() const;
        auto Bottom(float value) const;
        [[nodiscard]] auto BottomLeftRadius() const;
        auto BottomLeftRadius(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto BottomRightRadius() const;
        auto BottomRightRadius(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Left() const;
        auto Left(float value) const;
        [[nodiscard]] auto Right() const;
        auto Right(float value) const;
        [[nodiscard]] auto Top() const;
        auto Top(float value) const;
        [[nodiscard]] auto TopLeftRadius() const;
        auto TopLeftRadius(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto TopRightRadius() const;
        auto TopRightRadius(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IRectangleClip>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IRectangleClip<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IRedirectVisual
    {
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Microsoft::UI::Composition::Visual const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IRedirectVisual>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IRedirectVisual<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IRenderingDeviceReplacedEventArgs
    {
        [[nodiscard]] auto GraphicsDevice() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IRenderingDeviceReplacedEventArgs>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IRenderingDeviceReplacedEventArgs<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IScalarKeyFrameAnimation
    {
        auto InsertKeyFrame(float normalizedProgressKey, float value) const;
        auto InsertKeyFrame(float normalizedProgressKey, float value, winrt::Microsoft::UI::Composition::CompositionEasingFunction const& easingFunction) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IScalarKeyFrameAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IScalarKeyFrameAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IScalarNaturalMotionAnimation
    {
        [[nodiscard]] auto FinalValue() const;
        auto FinalValue(winrt::Windows::Foundation::IReference<float> const& value) const;
        [[nodiscard]] auto InitialValue() const;
        auto InitialValue(winrt::Windows::Foundation::IReference<float> const& value) const;
        [[nodiscard]] auto InitialVelocity() const;
        auto InitialVelocity(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IScalarNaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IScalarNaturalMotionAnimationFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IScalarNaturalMotionAnimationFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IScalarNaturalMotionAnimationFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IShapeVisual
    {
        [[nodiscard]] auto Shapes() const;
        [[nodiscard]] auto ViewBox() const;
        auto ViewBox(winrt::Microsoft::UI::Composition::CompositionViewBox const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IShapeVisual>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IShapeVisual<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ISineEasingFunction
    {
        [[nodiscard]] auto Mode() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ISineEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ISineEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ISpotLight
    {
        [[nodiscard]] auto ConstantAttenuation() const;
        auto ConstantAttenuation(float value) const;
        [[nodiscard]] auto CoordinateSpace() const;
        auto CoordinateSpace(winrt::Microsoft::UI::Composition::Visual const& value) const;
        [[nodiscard]] auto Direction() const;
        auto Direction(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto InnerConeAngle() const;
        auto InnerConeAngle(float value) const;
        [[nodiscard]] auto InnerConeAngleInDegrees() const;
        auto InnerConeAngleInDegrees(float value) const;
        [[nodiscard]] auto InnerConeColor() const;
        auto InnerConeColor(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto LinearAttenuation() const;
        auto LinearAttenuation(float value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto OuterConeAngle() const;
        auto OuterConeAngle(float value) const;
        [[nodiscard]] auto OuterConeAngleInDegrees() const;
        auto OuterConeAngleInDegrees(float value) const;
        [[nodiscard]] auto OuterConeColor() const;
        auto OuterConeColor(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto QuadraticAttenuation() const;
        auto QuadraticAttenuation(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ISpotLight>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ISpotLight<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ISpotLight2
    {
        [[nodiscard]] auto InnerConeIntensity() const;
        auto InnerConeIntensity(float value) const;
        [[nodiscard]] auto OuterConeIntensity() const;
        auto OuterConeIntensity(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ISpotLight2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ISpotLight2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ISpotLight3
    {
        [[nodiscard]] auto MinAttenuationCutoff() const;
        auto MinAttenuationCutoff(float value) const;
        [[nodiscard]] auto MaxAttenuationCutoff() const;
        auto MaxAttenuationCutoff(float value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ISpotLight3>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ISpotLight3<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ISpringScalarNaturalMotionAnimation
    {
        [[nodiscard]] auto DampingRatio() const;
        auto DampingRatio(float value) const;
        [[nodiscard]] auto Period() const;
        auto Period(winrt::Windows::Foundation::TimeSpan const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ISpringScalarNaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ISpringScalarNaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ISpringVector2NaturalMotionAnimation
    {
        [[nodiscard]] auto DampingRatio() const;
        auto DampingRatio(float value) const;
        [[nodiscard]] auto Period() const;
        auto Period(winrt::Windows::Foundation::TimeSpan const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ISpringVector2NaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ISpringVector2NaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ISpringVector3NaturalMotionAnimation
    {
        [[nodiscard]] auto DampingRatio() const;
        auto DampingRatio(float value) const;
        [[nodiscard]] auto Period() const;
        auto Period(winrt::Windows::Foundation::TimeSpan const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ISpringVector3NaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ISpringVector3NaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ISpriteVisual
    {
        [[nodiscard]] auto Brush() const;
        auto Brush(winrt::Microsoft::UI::Composition::CompositionBrush const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ISpriteVisual>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ISpriteVisual<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_ISpriteVisual2
    {
        [[nodiscard]] auto Shadow() const;
        auto Shadow(winrt::Microsoft::UI::Composition::CompositionShadow const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::ISpriteVisual2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_ISpriteVisual2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IStepEasingFunction
    {
        [[nodiscard]] auto FinalStep() const;
        auto FinalStep(int32_t value) const;
        [[nodiscard]] auto InitialStep() const;
        auto InitialStep(int32_t value) const;
        [[nodiscard]] auto IsFinalStepSingleFrame() const;
        auto IsFinalStepSingleFrame(bool value) const;
        [[nodiscard]] auto IsInitialStepSingleFrame() const;
        auto IsInitialStepSingleFrame(bool value) const;
        [[nodiscard]] auto StepCount() const;
        auto StepCount(int32_t value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IStepEasingFunction>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IStepEasingFunction<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVector2KeyFrameAnimation
    {
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::Foundation::Numerics::float2 const& value) const;
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::Foundation::Numerics::float2 const& value, winrt::Microsoft::UI::Composition::CompositionEasingFunction const& easingFunction) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVector2KeyFrameAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVector2KeyFrameAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVector2NaturalMotionAnimation
    {
        [[nodiscard]] auto FinalValue() const;
        auto FinalValue(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::Numerics::float2> const& value) const;
        [[nodiscard]] auto InitialValue() const;
        auto InitialValue(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::Numerics::float2> const& value) const;
        [[nodiscard]] auto InitialVelocity() const;
        auto InitialVelocity(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVector2NaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVector2NaturalMotionAnimationFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVector2NaturalMotionAnimationFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVector2NaturalMotionAnimationFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVector3KeyFrameAnimation
    {
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::Foundation::Numerics::float3 const& value) const;
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::Foundation::Numerics::float3 const& value, winrt::Microsoft::UI::Composition::CompositionEasingFunction const& easingFunction) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVector3KeyFrameAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVector3KeyFrameAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVector3NaturalMotionAnimation
    {
        [[nodiscard]] auto FinalValue() const;
        auto FinalValue(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::Numerics::float3> const& value) const;
        [[nodiscard]] auto InitialValue() const;
        auto InitialValue(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::Numerics::float3> const& value) const;
        [[nodiscard]] auto InitialVelocity() const;
        auto InitialVelocity(winrt::Windows::Foundation::Numerics::float3 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVector3NaturalMotionAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVector3NaturalMotionAnimationFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVector3NaturalMotionAnimationFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVector3NaturalMotionAnimationFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVector4KeyFrameAnimation
    {
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::Foundation::Numerics::float4 const& value) const;
        auto InsertKeyFrame(float normalizedProgressKey, winrt::Windows::Foundation::Numerics::float4 const& value, winrt::Microsoft::UI::Composition::CompositionEasingFunction const& easingFunction) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVector4KeyFrameAnimation>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVector4KeyFrameAnimation<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVisual
    {
        [[nodiscard]] auto AnchorPoint() const;
        auto AnchorPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto BackfaceVisibility() const;
        auto BackfaceVisibility(winrt::Microsoft::UI::Composition::CompositionBackfaceVisibility const& value) const;
        [[nodiscard]] auto BorderMode() const;
        auto BorderMode(winrt::Microsoft::UI::Composition::CompositionBorderMode const& value) const;
        [[nodiscard]] auto CenterPoint() const;
        auto CenterPoint(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto Clip() const;
        auto Clip(winrt::Microsoft::UI::Composition::CompositionClip const& value) const;
        [[nodiscard]] auto CompositeMode() const;
        auto CompositeMode(winrt::Microsoft::UI::Composition::CompositionCompositeMode const& value) const;
        [[nodiscard]] auto IsVisible() const;
        auto IsVisible(bool value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto Opacity() const;
        auto Opacity(float value) const;
        [[nodiscard]] auto Orientation() const;
        auto Orientation(winrt::Windows::Foundation::Numerics::quaternion const& value) const;
        [[nodiscard]] auto Parent() const;
        [[nodiscard]] auto RotationAngle() const;
        auto RotationAngle(float value) const;
        [[nodiscard]] auto RotationAngleInDegrees() const;
        auto RotationAngleInDegrees(float value) const;
        [[nodiscard]] auto RotationAxis() const;
        auto RotationAxis(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto Scale() const;
        auto Scale(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto Size() const;
        auto Size(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto TransformMatrix() const;
        auto TransformMatrix(winrt::Windows::Foundation::Numerics::float4x4 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVisual>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVisual<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVisual2
    {
        [[nodiscard]] auto ParentForTransform() const;
        auto ParentForTransform(winrt::Microsoft::UI::Composition::Visual const& value) const;
        [[nodiscard]] auto RelativeOffsetAdjustment() const;
        auto RelativeOffsetAdjustment(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto RelativeSizeAdjustment() const;
        auto RelativeSizeAdjustment(winrt::Windows::Foundation::Numerics::float2 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVisual2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVisual2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVisual3
    {
        [[nodiscard]] auto IsHitTestVisible() const;
        auto IsHitTestVisible(bool value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVisual3>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVisual3<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVisual4
    {
        [[nodiscard]] auto IsPixelSnappingEnabled() const;
        auto IsPixelSnappingEnabled(bool value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVisual4>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVisual4<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVisualCollection
    {
        [[nodiscard]] auto Count() const;
        auto InsertAbove(winrt::Microsoft::UI::Composition::Visual const& newChild, winrt::Microsoft::UI::Composition::Visual const& sibling) const;
        auto InsertAtBottom(winrt::Microsoft::UI::Composition::Visual const& newChild) const;
        auto InsertAtTop(winrt::Microsoft::UI::Composition::Visual const& newChild) const;
        auto InsertBelow(winrt::Microsoft::UI::Composition::Visual const& newChild, winrt::Microsoft::UI::Composition::Visual const& sibling) const;
        auto Remove(winrt::Microsoft::UI::Composition::Visual const& child) const;
        auto RemoveAll() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVisualCollection>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVisualCollection<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVisualElement
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVisualElement>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVisualElement<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVisualElement2
    {
        auto GetVisualInternal() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVisualElement2>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVisualElement2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVisualFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVisualFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVisualFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Composition_IVisualUnorderedCollection
    {
        [[nodiscard]] auto Count() const;
        auto Add(winrt::Microsoft::UI::Composition::Visual const& newVisual) const;
        auto Remove(winrt::Microsoft::UI::Composition::Visual const& visual) const;
        auto RemoveAll() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Composition::IVisualUnorderedCollection>
    {
        template <typename D> using type = consume_Microsoft_UI_Composition_IVisualUnorderedCollection<D>;
    };
}
#endif
