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

#pragma once
#ifndef WINRT_Microsoft_Graphics_Canvas_Effects_0_H
#define WINRT_Microsoft_Graphics_Canvas_Effects_0_H
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas
{
    enum class CanvasAlphaMode : int32_t;
    enum class CanvasBufferPrecision : int32_t;
    enum class CanvasColorSpace : int32_t;
    enum class CanvasComposite : int32_t;
    struct CanvasDevice;
    enum class CanvasEdgeBehavior : int32_t;
    enum class CanvasImageInterpolation : int32_t;
    struct ICanvasResourceCreator;
    struct ICanvasResourceCreatorWithDpi;
}
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    template <typename T> struct WINRT_IMPL_EMPTY_BASES IReference;
    struct Rect;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Numerics
{
}
WINRT_EXPORT namespace winrt::Windows::Graphics::DirectX
{
    enum class DirectXPixelFormat : int32_t;
}
WINRT_EXPORT namespace winrt::Windows::Graphics::Effects
{
    struct IGraphicsEffectSource;
}
WINRT_EXPORT namespace winrt::Windows::UI
{
    struct Color;
}
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas::Effects
{
    enum class BlendEffectMode : int32_t
    {
        Multiply = 0,
        Screen = 1,
        Darken = 2,
        Lighten = 3,
        Dissolve = 4,
        ColorBurn = 5,
        LinearBurn = 6,
        DarkerColor = 7,
        LighterColor = 8,
        ColorDodge = 9,
        LinearDodge = 10,
        Overlay = 11,
        SoftLight = 12,
        HardLight = 13,
        VividLight = 14,
        LinearLight = 15,
        PinLight = 16,
        HardMix = 17,
        Difference = 18,
        Exclusion = 19,
        Hue = 20,
        Saturation = 21,
        Color = 22,
        Luminosity = 23,
        Subtract = 24,
        Division = 25,
    };
    enum class ColorManagementEffectQuality : int32_t
    {
        Proof = 0,
        Normal = 1,
        Best = 2,
    };
    enum class ColorManagementGamma : int32_t
    {
        G22 = 0,
        G10 = 1,
        G2084 = 2,
    };
    enum class ColorManagementProfileType : int32_t
    {
        Icc = 0,
        Simple = 1,
        Extended = 2,
    };
    enum class ColorManagementRenderingIntent : int32_t
    {
        Perceptual = 0,
        RelativeColorimetric = 1,
        Saturation = 2,
        AbsoluteColorimetric = 3,
    };
    enum class EdgeDetectionEffectMode : int32_t
    {
        Sobel = 0,
        Prewitt = 1,
    };
    enum class EffectBorderMode : int32_t
    {
        Soft = 0,
        Hard = 1,
    };
    enum class EffectChannelSelect : int32_t
    {
        Red = 0,
        Green = 1,
        Blue = 2,
        Alpha = 3,
    };
    enum class EffectHueColorSpace : int32_t
    {
        Hsv = 0,
        Hsl = 1,
    };
    enum class EffectOptimization : int32_t
    {
        Speed = 0,
        Balanced = 1,
        Quality = 2,
    };
    enum class ExtendedColorSpace : int32_t
    {
        FullG22P709 = 0,
        FullG10P709 = 1,
        StudioG22P709 = 2,
        StudioG22P2020 = 3,
        FullG2084P2020 = 12,
        StudioG2084P2020 = 14,
        FullG22P2020 = 17,
        Custom = -1,
    };
    enum class MorphologyEffectMode : int32_t
    {
        Erode = 0,
        Dilate = 1,
    };
    enum class SamplerCoordinateMapping : int32_t
    {
        Unknown = 0,
        OneToOne = 1,
        Offset = 2,
    };
    enum class TurbulenceEffectNoise : int32_t
    {
        FractalSum = 0,
        Turbulence = 1,
    };
    struct IAlphaMaskEffect;
    struct IAlphaMaskEffectStatics;
    struct IArithmeticCompositeEffect;
    struct IAtlasEffect;
    struct IBlendEffect;
    struct IBorderEffect;
    struct IBrightnessEffect;
    struct ICanvasEffect;
    struct IChromaKeyEffect;
    struct IColorManagementEffect;
    struct IColorManagementEffectStatics;
    struct IColorManagementProfile;
    struct IColorManagementProfileFactory;
    struct IColorManagementProfileStatics;
    struct IColorMatrixEffect;
    struct IColorSourceEffect;
    struct ICompositeEffect;
    struct IContrastEffect;
    struct IConvolveMatrixEffect;
    struct ICropEffect;
    struct ICrossFadeEffect;
    struct ICrossFadeEffectStatics;
    struct IDirectionalBlurEffect;
    struct IDiscreteTransferEffect;
    struct IDisplacementMapEffect;
    struct IDistantDiffuseEffect;
    struct IDistantSpecularEffect;
    struct IDpiCompensationEffect;
    struct IEdgeDetectionEffect;
    struct IEffectTransferTable3D;
    struct IEffectTransferTable3DStatics;
    struct IEmbossEffect;
    struct IExposureEffect;
    struct IGammaTransferEffect;
    struct IGaussianBlurEffect;
    struct IGrayscaleEffect;
    struct IHighlightsAndShadowsEffect;
    struct IHueRotationEffect;
    struct IHueToRgbEffect;
    struct IInvertEffect;
    struct ILinearTransferEffect;
    struct ILuminanceToAlphaEffect;
    struct IMorphologyEffect;
    struct IOpacityEffect;
    struct IOpacityEffectStatics;
    struct IOpacityMetadataEffect;
    struct IPixelShaderEffect;
    struct IPixelShaderEffectFactory;
    struct IPointDiffuseEffect;
    struct IPointSpecularEffect;
    struct IPosterizeEffect;
    struct IPremultiplyEffect;
    struct IRgbToHueEffect;
    struct ISaturationEffect;
    struct IScaleEffect;
    struct ISepiaEffect;
    struct IShadowEffect;
    struct ISharpenEffect;
    struct ISpotDiffuseEffect;
    struct ISpotSpecularEffect;
    struct IStraightenEffect;
    struct ITableTransfer3DEffect;
    struct ITableTransferEffect;
    struct ITemperatureAndTintEffect;
    struct ITileEffect;
    struct ITintEffect;
    struct ITintEffectStatics;
    struct ITransform2DEffect;
    struct ITransform3DEffect;
    struct ITurbulenceEffect;
    struct IUnPremultiplyEffect;
    struct IVignetteEffect;
    struct AlphaMaskEffect;
    struct ArithmeticCompositeEffect;
    struct AtlasEffect;
    struct BlendEffect;
    struct BorderEffect;
    struct BrightnessEffect;
    struct ChromaKeyEffect;
    struct ColorManagementEffect;
    struct ColorManagementProfile;
    struct ColorMatrixEffect;
    struct ColorSourceEffect;
    struct CompositeEffect;
    struct ContrastEffect;
    struct ConvolveMatrixEffect;
    struct CropEffect;
    struct CrossFadeEffect;
    struct DirectionalBlurEffect;
    struct DiscreteTransferEffect;
    struct DisplacementMapEffect;
    struct DistantDiffuseEffect;
    struct DistantSpecularEffect;
    struct DpiCompensationEffect;
    struct EdgeDetectionEffect;
    struct EffectTransferTable3D;
    struct EmbossEffect;
    struct ExposureEffect;
    struct GammaTransferEffect;
    struct GaussianBlurEffect;
    struct GrayscaleEffect;
    struct HighlightsAndShadowsEffect;
    struct HueRotationEffect;
    struct HueToRgbEffect;
    struct InvertEffect;
    struct LinearTransferEffect;
    struct LuminanceToAlphaEffect;
    struct MorphologyEffect;
    struct OpacityEffect;
    struct OpacityMetadataEffect;
    struct PixelShaderEffect;
    struct PointDiffuseEffect;
    struct PointSpecularEffect;
    struct PosterizeEffect;
    struct PremultiplyEffect;
    struct RgbToHueEffect;
    struct SaturationEffect;
    struct ScaleEffect;
    struct SepiaEffect;
    struct ShadowEffect;
    struct SharpenEffect;
    struct SpotDiffuseEffect;
    struct SpotSpecularEffect;
    struct StraightenEffect;
    struct TableTransfer3DEffect;
    struct TableTransferEffect;
    struct TemperatureAndTintEffect;
    struct TileEffect;
    struct TintEffect;
    struct Transform2DEffect;
    struct Transform3DEffect;
    struct TurbulenceEffect;
    struct UnPremultiplyEffect;
    struct VignetteEffect;
    struct ColorManagementSimpleProfile;
    struct Matrix5x4;
}
namespace winrt::impl
{
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffectStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IArithmeticCompositeEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IAtlasEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IBlendEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IBorderEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IBrightnessEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ICanvasEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IChromaKeyEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementEffectStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfile>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IColorMatrixEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IColorSourceEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ICompositeEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IContrastEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IConvolveMatrixEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ICropEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffectStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IDirectionalBlurEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IDiscreteTransferEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IDisplacementMapEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IDistantDiffuseEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IDistantSpecularEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IDpiCompensationEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IEdgeDetectionEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3D>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3DStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IEmbossEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IExposureEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IGammaTransferEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IGaussianBlurEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IGrayscaleEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IHighlightsAndShadowsEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IHueRotationEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IHueToRgbEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IInvertEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ILinearTransferEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ILuminanceToAlphaEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IMorphologyEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityEffectStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityMetadataEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffectFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IPointDiffuseEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IPointSpecularEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IPosterizeEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IPremultiplyEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IRgbToHueEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ISaturationEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IScaleEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ISepiaEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IShadowEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ISharpenEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ISpotDiffuseEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ISpotSpecularEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IStraightenEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ITableTransfer3DEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ITableTransferEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ITemperatureAndTintEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ITileEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ITintEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ITintEffectStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ITransform2DEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ITransform3DEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ITurbulenceEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IUnPremultiplyEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::IVignetteEffect>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::AlphaMaskEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ArithmeticCompositeEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::AtlasEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::BlendEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::BorderEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::BrightnessEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ChromaKeyEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementProfile>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ColorMatrixEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ColorSourceEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::CompositeEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ContrastEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ConvolveMatrixEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::CropEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::CrossFadeEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::DirectionalBlurEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::DiscreteTransferEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::DisplacementMapEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::DistantDiffuseEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::DistantSpecularEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::DpiCompensationEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::EdgeDetectionEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::EffectTransferTable3D>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::EmbossEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ExposureEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::GammaTransferEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::GaussianBlurEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::GrayscaleEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::HighlightsAndShadowsEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::HueRotationEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::HueToRgbEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::InvertEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::LinearTransferEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::LuminanceToAlphaEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::MorphologyEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::OpacityEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::OpacityMetadataEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::PixelShaderEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::PointDiffuseEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::PointSpecularEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::PosterizeEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::PremultiplyEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::RgbToHueEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::SaturationEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ScaleEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::SepiaEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ShadowEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::SharpenEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::SpotDiffuseEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::SpotSpecularEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::StraightenEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::TableTransfer3DEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::TableTransferEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::TemperatureAndTintEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::TileEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::TintEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::Transform2DEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::Transform3DEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::TurbulenceEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::UnPremultiplyEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::VignetteEffect>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::BlendEffectMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementEffectQuality>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementGamma>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementProfileType>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementRenderingIntent>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::EdgeDetectionEffectMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::EffectChannelSelect>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::EffectHueColorSpace>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::EffectOptimization>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ExtendedColorSpace>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::MorphologyEffectMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::TurbulenceEffectNoise>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementSimpleProfile>{ using type = struct_category<winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementGamma>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Effects::Matrix5x4>{ using type = struct_category<float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float>; };
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::AlphaMaskEffect> = L"Microsoft.Graphics.Canvas.Effects.AlphaMaskEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ArithmeticCompositeEffect> = L"Microsoft.Graphics.Canvas.Effects.ArithmeticCompositeEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::AtlasEffect> = L"Microsoft.Graphics.Canvas.Effects.AtlasEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::BlendEffect> = L"Microsoft.Graphics.Canvas.Effects.BlendEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::BorderEffect> = L"Microsoft.Graphics.Canvas.Effects.BorderEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::BrightnessEffect> = L"Microsoft.Graphics.Canvas.Effects.BrightnessEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ChromaKeyEffect> = L"Microsoft.Graphics.Canvas.Effects.ChromaKeyEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementEffect> = L"Microsoft.Graphics.Canvas.Effects.ColorManagementEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementProfile> = L"Microsoft.Graphics.Canvas.Effects.ColorManagementProfile";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ColorMatrixEffect> = L"Microsoft.Graphics.Canvas.Effects.ColorMatrixEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ColorSourceEffect> = L"Microsoft.Graphics.Canvas.Effects.ColorSourceEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::CompositeEffect> = L"Microsoft.Graphics.Canvas.Effects.CompositeEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ContrastEffect> = L"Microsoft.Graphics.Canvas.Effects.ContrastEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ConvolveMatrixEffect> = L"Microsoft.Graphics.Canvas.Effects.ConvolveMatrixEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::CropEffect> = L"Microsoft.Graphics.Canvas.Effects.CropEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::CrossFadeEffect> = L"Microsoft.Graphics.Canvas.Effects.CrossFadeEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::DirectionalBlurEffect> = L"Microsoft.Graphics.Canvas.Effects.DirectionalBlurEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::DiscreteTransferEffect> = L"Microsoft.Graphics.Canvas.Effects.DiscreteTransferEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::DisplacementMapEffect> = L"Microsoft.Graphics.Canvas.Effects.DisplacementMapEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::DistantDiffuseEffect> = L"Microsoft.Graphics.Canvas.Effects.DistantDiffuseEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::DistantSpecularEffect> = L"Microsoft.Graphics.Canvas.Effects.DistantSpecularEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::DpiCompensationEffect> = L"Microsoft.Graphics.Canvas.Effects.DpiCompensationEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::EdgeDetectionEffect> = L"Microsoft.Graphics.Canvas.Effects.EdgeDetectionEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::EffectTransferTable3D> = L"Microsoft.Graphics.Canvas.Effects.EffectTransferTable3D";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::EmbossEffect> = L"Microsoft.Graphics.Canvas.Effects.EmbossEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ExposureEffect> = L"Microsoft.Graphics.Canvas.Effects.ExposureEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::GammaTransferEffect> = L"Microsoft.Graphics.Canvas.Effects.GammaTransferEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::GaussianBlurEffect> = L"Microsoft.Graphics.Canvas.Effects.GaussianBlurEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::GrayscaleEffect> = L"Microsoft.Graphics.Canvas.Effects.GrayscaleEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::HighlightsAndShadowsEffect> = L"Microsoft.Graphics.Canvas.Effects.HighlightsAndShadowsEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::HueRotationEffect> = L"Microsoft.Graphics.Canvas.Effects.HueRotationEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::HueToRgbEffect> = L"Microsoft.Graphics.Canvas.Effects.HueToRgbEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::InvertEffect> = L"Microsoft.Graphics.Canvas.Effects.InvertEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::LinearTransferEffect> = L"Microsoft.Graphics.Canvas.Effects.LinearTransferEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::LuminanceToAlphaEffect> = L"Microsoft.Graphics.Canvas.Effects.LuminanceToAlphaEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::MorphologyEffect> = L"Microsoft.Graphics.Canvas.Effects.MorphologyEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::OpacityEffect> = L"Microsoft.Graphics.Canvas.Effects.OpacityEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::OpacityMetadataEffect> = L"Microsoft.Graphics.Canvas.Effects.OpacityMetadataEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::PixelShaderEffect> = L"Microsoft.Graphics.Canvas.Effects.PixelShaderEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::PointDiffuseEffect> = L"Microsoft.Graphics.Canvas.Effects.PointDiffuseEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::PointSpecularEffect> = L"Microsoft.Graphics.Canvas.Effects.PointSpecularEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::PosterizeEffect> = L"Microsoft.Graphics.Canvas.Effects.PosterizeEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::PremultiplyEffect> = L"Microsoft.Graphics.Canvas.Effects.PremultiplyEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::RgbToHueEffect> = L"Microsoft.Graphics.Canvas.Effects.RgbToHueEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::SaturationEffect> = L"Microsoft.Graphics.Canvas.Effects.SaturationEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ScaleEffect> = L"Microsoft.Graphics.Canvas.Effects.ScaleEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::SepiaEffect> = L"Microsoft.Graphics.Canvas.Effects.SepiaEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ShadowEffect> = L"Microsoft.Graphics.Canvas.Effects.ShadowEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::SharpenEffect> = L"Microsoft.Graphics.Canvas.Effects.SharpenEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::SpotDiffuseEffect> = L"Microsoft.Graphics.Canvas.Effects.SpotDiffuseEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::SpotSpecularEffect> = L"Microsoft.Graphics.Canvas.Effects.SpotSpecularEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::StraightenEffect> = L"Microsoft.Graphics.Canvas.Effects.StraightenEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::TableTransfer3DEffect> = L"Microsoft.Graphics.Canvas.Effects.TableTransfer3DEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::TableTransferEffect> = L"Microsoft.Graphics.Canvas.Effects.TableTransferEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::TemperatureAndTintEffect> = L"Microsoft.Graphics.Canvas.Effects.TemperatureAndTintEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::TileEffect> = L"Microsoft.Graphics.Canvas.Effects.TileEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::TintEffect> = L"Microsoft.Graphics.Canvas.Effects.TintEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::Transform2DEffect> = L"Microsoft.Graphics.Canvas.Effects.Transform2DEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::Transform3DEffect> = L"Microsoft.Graphics.Canvas.Effects.Transform3DEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::TurbulenceEffect> = L"Microsoft.Graphics.Canvas.Effects.TurbulenceEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::UnPremultiplyEffect> = L"Microsoft.Graphics.Canvas.Effects.UnPremultiplyEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::VignetteEffect> = L"Microsoft.Graphics.Canvas.Effects.VignetteEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::BlendEffectMode> = L"Microsoft.Graphics.Canvas.Effects.BlendEffectMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementEffectQuality> = L"Microsoft.Graphics.Canvas.Effects.ColorManagementEffectQuality";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementGamma> = L"Microsoft.Graphics.Canvas.Effects.ColorManagementGamma";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementProfileType> = L"Microsoft.Graphics.Canvas.Effects.ColorManagementProfileType";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementRenderingIntent> = L"Microsoft.Graphics.Canvas.Effects.ColorManagementRenderingIntent";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::EdgeDetectionEffectMode> = L"Microsoft.Graphics.Canvas.Effects.EdgeDetectionEffectMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode> = L"Microsoft.Graphics.Canvas.Effects.EffectBorderMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::EffectChannelSelect> = L"Microsoft.Graphics.Canvas.Effects.EffectChannelSelect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::EffectHueColorSpace> = L"Microsoft.Graphics.Canvas.Effects.EffectHueColorSpace";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::EffectOptimization> = L"Microsoft.Graphics.Canvas.Effects.EffectOptimization";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ExtendedColorSpace> = L"Microsoft.Graphics.Canvas.Effects.ExtendedColorSpace";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::MorphologyEffectMode> = L"Microsoft.Graphics.Canvas.Effects.MorphologyEffectMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping> = L"Microsoft.Graphics.Canvas.Effects.SamplerCoordinateMapping";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::TurbulenceEffectNoise> = L"Microsoft.Graphics.Canvas.Effects.TurbulenceEffectNoise";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementSimpleProfile> = L"Microsoft.Graphics.Canvas.Effects.ColorManagementSimpleProfile";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::Matrix5x4> = L"Microsoft.Graphics.Canvas.Effects.Matrix5x4";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffect> = L"Microsoft.Graphics.Canvas.Effects.IAlphaMaskEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffectStatics> = L"Microsoft.Graphics.Canvas.Effects.IAlphaMaskEffectStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IArithmeticCompositeEffect> = L"Microsoft.Graphics.Canvas.Effects.IArithmeticCompositeEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IAtlasEffect> = L"Microsoft.Graphics.Canvas.Effects.IAtlasEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IBlendEffect> = L"Microsoft.Graphics.Canvas.Effects.IBlendEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IBorderEffect> = L"Microsoft.Graphics.Canvas.Effects.IBorderEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IBrightnessEffect> = L"Microsoft.Graphics.Canvas.Effects.IBrightnessEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ICanvasEffect> = L"Microsoft.Graphics.Canvas.Effects.ICanvasEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IChromaKeyEffect> = L"Microsoft.Graphics.Canvas.Effects.IChromaKeyEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementEffect> = L"Microsoft.Graphics.Canvas.Effects.IColorManagementEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementEffectStatics> = L"Microsoft.Graphics.Canvas.Effects.IColorManagementEffectStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfile> = L"Microsoft.Graphics.Canvas.Effects.IColorManagementProfile";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileFactory> = L"Microsoft.Graphics.Canvas.Effects.IColorManagementProfileFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileStatics> = L"Microsoft.Graphics.Canvas.Effects.IColorManagementProfileStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorMatrixEffect> = L"Microsoft.Graphics.Canvas.Effects.IColorMatrixEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorSourceEffect> = L"Microsoft.Graphics.Canvas.Effects.IColorSourceEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ICompositeEffect> = L"Microsoft.Graphics.Canvas.Effects.ICompositeEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IContrastEffect> = L"Microsoft.Graphics.Canvas.Effects.IContrastEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IConvolveMatrixEffect> = L"Microsoft.Graphics.Canvas.Effects.IConvolveMatrixEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ICropEffect> = L"Microsoft.Graphics.Canvas.Effects.ICropEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffect> = L"Microsoft.Graphics.Canvas.Effects.ICrossFadeEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffectStatics> = L"Microsoft.Graphics.Canvas.Effects.ICrossFadeEffectStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IDirectionalBlurEffect> = L"Microsoft.Graphics.Canvas.Effects.IDirectionalBlurEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IDiscreteTransferEffect> = L"Microsoft.Graphics.Canvas.Effects.IDiscreteTransferEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IDisplacementMapEffect> = L"Microsoft.Graphics.Canvas.Effects.IDisplacementMapEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IDistantDiffuseEffect> = L"Microsoft.Graphics.Canvas.Effects.IDistantDiffuseEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IDistantSpecularEffect> = L"Microsoft.Graphics.Canvas.Effects.IDistantSpecularEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IDpiCompensationEffect> = L"Microsoft.Graphics.Canvas.Effects.IDpiCompensationEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IEdgeDetectionEffect> = L"Microsoft.Graphics.Canvas.Effects.IEdgeDetectionEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3D> = L"Microsoft.Graphics.Canvas.Effects.IEffectTransferTable3D";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3DStatics> = L"Microsoft.Graphics.Canvas.Effects.IEffectTransferTable3DStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IEmbossEffect> = L"Microsoft.Graphics.Canvas.Effects.IEmbossEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IExposureEffect> = L"Microsoft.Graphics.Canvas.Effects.IExposureEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IGammaTransferEffect> = L"Microsoft.Graphics.Canvas.Effects.IGammaTransferEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IGaussianBlurEffect> = L"Microsoft.Graphics.Canvas.Effects.IGaussianBlurEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IGrayscaleEffect> = L"Microsoft.Graphics.Canvas.Effects.IGrayscaleEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IHighlightsAndShadowsEffect> = L"Microsoft.Graphics.Canvas.Effects.IHighlightsAndShadowsEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IHueRotationEffect> = L"Microsoft.Graphics.Canvas.Effects.IHueRotationEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IHueToRgbEffect> = L"Microsoft.Graphics.Canvas.Effects.IHueToRgbEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IInvertEffect> = L"Microsoft.Graphics.Canvas.Effects.IInvertEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ILinearTransferEffect> = L"Microsoft.Graphics.Canvas.Effects.ILinearTransferEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ILuminanceToAlphaEffect> = L"Microsoft.Graphics.Canvas.Effects.ILuminanceToAlphaEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IMorphologyEffect> = L"Microsoft.Graphics.Canvas.Effects.IMorphologyEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityEffect> = L"Microsoft.Graphics.Canvas.Effects.IOpacityEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityEffectStatics> = L"Microsoft.Graphics.Canvas.Effects.IOpacityEffectStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityMetadataEffect> = L"Microsoft.Graphics.Canvas.Effects.IOpacityMetadataEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffect> = L"Microsoft.Graphics.Canvas.Effects.IPixelShaderEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffectFactory> = L"Microsoft.Graphics.Canvas.Effects.IPixelShaderEffectFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IPointDiffuseEffect> = L"Microsoft.Graphics.Canvas.Effects.IPointDiffuseEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IPointSpecularEffect> = L"Microsoft.Graphics.Canvas.Effects.IPointSpecularEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IPosterizeEffect> = L"Microsoft.Graphics.Canvas.Effects.IPosterizeEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IPremultiplyEffect> = L"Microsoft.Graphics.Canvas.Effects.IPremultiplyEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IRgbToHueEffect> = L"Microsoft.Graphics.Canvas.Effects.IRgbToHueEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ISaturationEffect> = L"Microsoft.Graphics.Canvas.Effects.ISaturationEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IScaleEffect> = L"Microsoft.Graphics.Canvas.Effects.IScaleEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ISepiaEffect> = L"Microsoft.Graphics.Canvas.Effects.ISepiaEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IShadowEffect> = L"Microsoft.Graphics.Canvas.Effects.IShadowEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ISharpenEffect> = L"Microsoft.Graphics.Canvas.Effects.ISharpenEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ISpotDiffuseEffect> = L"Microsoft.Graphics.Canvas.Effects.ISpotDiffuseEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ISpotSpecularEffect> = L"Microsoft.Graphics.Canvas.Effects.ISpotSpecularEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IStraightenEffect> = L"Microsoft.Graphics.Canvas.Effects.IStraightenEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ITableTransfer3DEffect> = L"Microsoft.Graphics.Canvas.Effects.ITableTransfer3DEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ITableTransferEffect> = L"Microsoft.Graphics.Canvas.Effects.ITableTransferEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ITemperatureAndTintEffect> = L"Microsoft.Graphics.Canvas.Effects.ITemperatureAndTintEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ITileEffect> = L"Microsoft.Graphics.Canvas.Effects.ITileEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ITintEffect> = L"Microsoft.Graphics.Canvas.Effects.ITintEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ITintEffectStatics> = L"Microsoft.Graphics.Canvas.Effects.ITintEffectStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ITransform2DEffect> = L"Microsoft.Graphics.Canvas.Effects.ITransform2DEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ITransform3DEffect> = L"Microsoft.Graphics.Canvas.Effects.ITransform3DEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::ITurbulenceEffect> = L"Microsoft.Graphics.Canvas.Effects.ITurbulenceEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IUnPremultiplyEffect> = L"Microsoft.Graphics.Canvas.Effects.IUnPremultiplyEffect";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Effects::IVignetteEffect> = L"Microsoft.Graphics.Canvas.Effects.IVignetteEffect";
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffect>{ 0x9BA6607E,0x75C9,0x5388,{ 0x89,0x2F,0xDD,0x34,0x40,0x56,0x4D,0x98 } }; // 9BA6607E-75C9-5388-892F-DD3440564D98
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffectStatics>{ 0xCC31105C,0x0377,0x5708,{ 0x84,0x84,0x1A,0xD8,0xEE,0x3E,0x55,0x4B } }; // CC31105C-0377-5708-8484-1AD8EE3E554B
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IArithmeticCompositeEffect>{ 0xBEEB682B,0xD64C,0x5C8B,{ 0xA1,0xFB,0x33,0x21,0x62,0xED,0x09,0x9C } }; // BEEB682B-D64C-5C8B-A1FB-332162ED099C
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IAtlasEffect>{ 0xF7F26EBA,0xF015,0x5EFF,{ 0x9A,0xF3,0x7B,0xD2,0xD4,0x49,0x04,0xBD } }; // F7F26EBA-F015-5EFF-9AF3-7BD2D44904BD
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IBlendEffect>{ 0x5673248E,0x7266,0x5E49,{ 0xB2,0xAB,0x25,0x89,0xD5,0xD8,0x75,0xC3 } }; // 5673248E-7266-5E49-B2AB-2589D5D875C3
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IBorderEffect>{ 0x31602441,0x15DB,0x5B4A,{ 0x98,0xDD,0xBA,0x42,0x47,0x54,0x8B,0x41 } }; // 31602441-15DB-5B4A-98DD-BA4247548B41
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IBrightnessEffect>{ 0xBECED347,0x025F,0x5727,{ 0x8F,0x7D,0x49,0x8D,0x67,0xDF,0x55,0x7E } }; // BECED347-025F-5727-8F7D-498D67DF557E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ICanvasEffect>{ 0x0EF96F8C,0x9B5E,0x4BF0,{ 0xA3,0x99,0xAA,0xD8,0xCE,0x53,0xDB,0x55 } }; // 0EF96F8C-9B5E-4BF0-A399-AAD8CE53DB55
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IChromaKeyEffect>{ 0xF14B9464,0x1871,0x5EAA,{ 0x9D,0xB6,0xC0,0x90,0x11,0x40,0xE9,0xD3 } }; // F14B9464-1871-5EAA-9DB6-C0901140E9D3
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementEffect>{ 0x6E8BBE37,0xE1E4,0x5AD0,{ 0xB9,0x8D,0x94,0x0E,0x32,0x13,0xA5,0x4E } }; // 6E8BBE37-E1E4-5AD0-B98D-940E3213A54E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementEffectStatics>{ 0x31C7AF98,0xF2D4,0x55FC,{ 0xB1,0x29,0xA7,0x07,0x36,0xE6,0xDA,0x05 } }; // 31C7AF98-F2D4-55FC-B129-A70736E6DA05
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfile>{ 0x5123A56B,0xB199,0x47AB,{ 0xAE,0xBE,0xD3,0x08,0x04,0x44,0x23,0xFE } }; // 5123A56B-B199-47AB-AEBE-D308044423FE
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileFactory>{ 0x7A0F1C98,0x94C6,0x4621,{ 0x98,0x77,0xC5,0x1A,0x17,0x82,0x3E,0xDF } }; // 7A0F1C98-94C6-4621-9877-C51A17823EDF
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileStatics>{ 0x94EEF610,0x03BD,0x4E82,{ 0x94,0x79,0x62,0xA6,0x16,0xBE,0x75,0xF1 } }; // 94EEF610-03BD-4E82-9479-62A616BE75F1
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorMatrixEffect>{ 0xE6AE54C4,0x883D,0x588E,{ 0xB4,0x51,0xE9,0xEB,0xE3,0x83,0x04,0x37 } }; // E6AE54C4-883D-588E-B451-E9EBE3830437
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IColorSourceEffect>{ 0x25F942C7,0x7FEE,0x518A,{ 0xBA,0x7B,0x22,0xA0,0x06,0x0A,0xF7,0xF6 } }; // 25F942C7-7FEE-518A-BA7B-22A0060AF7F6
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ICompositeEffect>{ 0xF8808C48,0xCDC7,0x5DB4,{ 0x80,0x7C,0xB9,0x34,0x4F,0xF7,0x19,0x84 } }; // F8808C48-CDC7-5DB4-807C-B9344FF71984
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IContrastEffect>{ 0xDA8A2B9F,0x594E,0x560A,{ 0x9E,0xAA,0x1F,0x91,0x24,0x08,0xFE,0x79 } }; // DA8A2B9F-594E-560A-9EAA-1F912408FE79
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IConvolveMatrixEffect>{ 0x82961257,0xA78D,0x5440,{ 0x80,0x26,0xAF,0x57,0xD4,0xA7,0x6A,0x9E } }; // 82961257-A78D-5440-8026-AF57D4A76A9E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ICropEffect>{ 0xD8A1C2A5,0xE031,0x566D,{ 0x8F,0x7C,0xBA,0x07,0xCF,0xB5,0x8A,0xAE } }; // D8A1C2A5-E031-566D-8F7C-BA07CFB58AAE
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffect>{ 0xBE161A9F,0x43D2,0x5613,{ 0x86,0x00,0xD5,0x1E,0x3D,0x7C,0xE2,0x88 } }; // BE161A9F-43D2-5613-8600-D51E3D7CE288
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffectStatics>{ 0xA3B67330,0x6284,0x5EF6,{ 0x99,0xE8,0xB4,0xB0,0x5D,0x2B,0x8B,0xFC } }; // A3B67330-6284-5EF6-99E8-B4B05D2B8BFC
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IDirectionalBlurEffect>{ 0x5D155C4B,0x0882,0x506A,{ 0xA8,0xE1,0x12,0xE1,0xEA,0xD1,0x7F,0x0A } }; // 5D155C4B-0882-506A-A8E1-12E1EAD17F0A
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IDiscreteTransferEffect>{ 0x7F1F54F9,0x21B5,0x5B91,{ 0x95,0x06,0x83,0x2C,0x53,0x6F,0xDD,0xFA } }; // 7F1F54F9-21B5-5B91-9506-832C536FDDFA
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IDisplacementMapEffect>{ 0x45F57C50,0xD4D9,0x5AF1,{ 0x8A,0x6B,0x50,0x37,0x8F,0x34,0x98,0xA2 } }; // 45F57C50-D4D9-5AF1-8A6B-50378F3498A2
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IDistantDiffuseEffect>{ 0xD501B10B,0xB445,0x50F4,{ 0x8B,0x8F,0xCD,0xEC,0xFC,0xDD,0x13,0x21 } }; // D501B10B-B445-50F4-8B8F-CDECFCDD1321
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IDistantSpecularEffect>{ 0xA7A828DF,0x3072,0x545F,{ 0x8D,0x75,0x86,0xC1,0x00,0xF0,0x32,0x31 } }; // A7A828DF-3072-545F-8D75-86C100F03231
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IDpiCompensationEffect>{ 0x636597CD,0xF94A,0x55B6,{ 0x9C,0xF0,0x69,0x4A,0x53,0xD6,0x38,0xEA } }; // 636597CD-F94A-55B6-9CF0-694A53D638EA
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IEdgeDetectionEffect>{ 0x69F6CF3A,0xF38F,0x5A88,{ 0x97,0x4A,0x29,0x39,0x0B,0x95,0x7E,0x5C } }; // 69F6CF3A-F38F-5A88-974A-29390B957E5C
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3D>{ 0x7AF06B86,0x2C45,0x49C8,{ 0x8F,0x44,0xE1,0x5A,0x6D,0x4F,0xA4,0x4E } }; // 7AF06B86-2C45-49C8-8F44-E15A6D4FA44E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3DStatics>{ 0x3CB83559,0x216A,0x4BCA,{ 0x9B,0xB6,0xE2,0x33,0xC5,0xAD,0x2C,0x48 } }; // 3CB83559-216A-4BCA-9BB6-E233C5AD2C48
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IEmbossEffect>{ 0x617BFF35,0x481C,0x5596,{ 0xAB,0xA5,0x00,0xA1,0x62,0x34,0x9D,0x7B } }; // 617BFF35-481C-5596-ABA5-00A162349D7B
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IExposureEffect>{ 0xB9E20A03,0x2232,0x5FD3,{ 0xB4,0x08,0x15,0x78,0x4B,0x79,0xDB,0xB0 } }; // B9E20A03-2232-5FD3-B408-15784B79DBB0
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IGammaTransferEffect>{ 0xB4576B6B,0x6C3E,0x534A,{ 0x85,0x76,0xD4,0x6D,0xF4,0xFC,0xE9,0x3D } }; // B4576B6B-6C3E-534A-8576-D46DF4FCE93D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IGaussianBlurEffect>{ 0xA82EC394,0x6734,0x5830,{ 0x91,0x23,0x2C,0x82,0xB2,0x7D,0xD3,0xC0 } }; // A82EC394-6734-5830-9123-2C82B27DD3C0
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IGrayscaleEffect>{ 0x78E13B83,0x0638,0x53F8,{ 0xB0,0xB3,0x5B,0x0B,0x32,0x0A,0x9A,0xD2 } }; // 78E13B83-0638-53F8-B0B3-5B0B320A9AD2
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IHighlightsAndShadowsEffect>{ 0x7F90BE14,0x267E,0x5088,{ 0xBC,0x36,0x2E,0x0A,0xAD,0x86,0x9B,0x52 } }; // 7F90BE14-267E-5088-BC36-2E0AAD869B52
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IHueRotationEffect>{ 0xC172EBF2,0xE35F,0x58AE,{ 0xAD,0x2C,0x56,0x1E,0xCE,0xAF,0x26,0x94 } }; // C172EBF2-E35F-58AE-AD2C-561ECEAF2694
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IHueToRgbEffect>{ 0x1E97C12C,0xB743,0x53D0,{ 0x88,0xC4,0x84,0x35,0x27,0x2B,0x0A,0x3D } }; // 1E97C12C-B743-53D0-88C4-8435272B0A3D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IInvertEffect>{ 0xD4ADCDFC,0x0F60,0x524D,{ 0x93,0x6A,0x7F,0x27,0x36,0xAD,0x33,0xD8 } }; // D4ADCDFC-0F60-524D-936A-7F2736AD33D8
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ILinearTransferEffect>{ 0x43D27AD0,0x8937,0x5FDB,{ 0x87,0x6A,0x4E,0x91,0xCB,0x47,0x54,0x0C } }; // 43D27AD0-8937-5FDB-876A-4E91CB47540C
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ILuminanceToAlphaEffect>{ 0x22364900,0xAC51,0x5BD3,{ 0x8B,0xD2,0xD6,0x26,0xFC,0x9A,0x65,0xF9 } }; // 22364900-AC51-5BD3-8BD2-D626FC9A65F9
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IMorphologyEffect>{ 0xFF065FDB,0x62C8,0x5808,{ 0x92,0x1E,0x49,0xEF,0xA4,0x3A,0x3D,0x34 } }; // FF065FDB-62C8-5808-921E-49EFA43A3D34
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityEffect>{ 0x94B6AD75,0xC540,0x51B8,{ 0xA9,0xD1,0x54,0x41,0x74,0xAD,0xC6,0x8D } }; // 94B6AD75-C540-51B8-A9D1-544174ADC68D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityEffectStatics>{ 0x91A7CDE3,0xB9B7,0x5437,{ 0x88,0x78,0xFB,0x2E,0x14,0x10,0x0E,0x6D } }; // 91A7CDE3-B9B7-5437-8878-FB2E14100E6D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityMetadataEffect>{ 0x099F3299,0x9B0A,0x5ED3,{ 0xB0,0x44,0x4A,0x6F,0xC9,0x6F,0x83,0x62 } }; // 099F3299-9B0A-5ED3-B044-4A6FC96F8362
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffect>{ 0xFC8C3C31,0xFA96,0x45E2,{ 0x8B,0x72,0x17,0x41,0xC6,0x5C,0xEE,0x8E } }; // FC8C3C31-FA96-45E2-8B72-1741C65CEE8E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffectFactory>{ 0x9D1727E5,0x489D,0x4ABC,{ 0xB1,0x29,0x53,0x61,0xE3,0x53,0x4A,0xF4 } }; // 9D1727E5-489D-4ABC-B129-5361E3534AF4
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IPointDiffuseEffect>{ 0x6CCE09EC,0xF847,0x5661,{ 0xAF,0x4B,0x53,0x1D,0xD3,0xDD,0x7D,0x6E } }; // 6CCE09EC-F847-5661-AF4B-531DD3DD7D6E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IPointSpecularEffect>{ 0xEC8AFE9B,0x8501,0x5286,{ 0xA4,0x3C,0x1A,0xFF,0xF7,0x42,0x0A,0xD6 } }; // EC8AFE9B-8501-5286-A43C-1AFFF7420AD6
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IPosterizeEffect>{ 0x2F631A3B,0xC89A,0x507C,{ 0x97,0x56,0x29,0x9B,0x61,0x43,0x4F,0xA4 } }; // 2F631A3B-C89A-507C-9756-299B61434FA4
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IPremultiplyEffect>{ 0xD29A9D1E,0xBD57,0x5F3E,{ 0x9A,0xE0,0x00,0x9C,0x6A,0xC5,0xB0,0x6D } }; // D29A9D1E-BD57-5F3E-9AE0-009C6AC5B06D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IRgbToHueEffect>{ 0x7CAEADC6,0x9EB3,0x5895,{ 0xB8,0x76,0xF4,0x85,0xC9,0x57,0x48,0x47 } }; // 7CAEADC6-9EB3-5895-B876-F485C9574847
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ISaturationEffect>{ 0xF85A5ED7,0x7212,0x57A6,{ 0xB3,0x57,0x61,0x03,0x89,0x61,0xC5,0x8D } }; // F85A5ED7-7212-57A6-B357-61038961C58D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IScaleEffect>{ 0x7522AE90,0xBEC2,0x512C,{ 0xBC,0xC0,0x4D,0x6A,0x97,0xE3,0xED,0x34 } }; // 7522AE90-BEC2-512C-BCC0-4D6A97E3ED34
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ISepiaEffect>{ 0xF933471F,0xA7AF,0x5521,{ 0xBE,0x79,0xB0,0xDA,0x22,0x97,0x6C,0xFF } }; // F933471F-A7AF-5521-BE79-B0DA22976CFF
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IShadowEffect>{ 0x3947C621,0x78DA,0x5489,{ 0x99,0x27,0xBE,0x65,0x5F,0x45,0x76,0xE2 } }; // 3947C621-78DA-5489-9927-BE655F4576E2
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ISharpenEffect>{ 0x7EFEF0A1,0x7578,0x5F62,{ 0x83,0x64,0x46,0x14,0x56,0x74,0xEF,0x7E } }; // 7EFEF0A1-7578-5F62-8364-46145674EF7E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ISpotDiffuseEffect>{ 0xB3DCBE44,0x1DD7,0x5CB3,{ 0x95,0xE5,0xA4,0x89,0x74,0xCD,0x12,0xE8 } }; // B3DCBE44-1DD7-5CB3-95E5-A48974CD12E8
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ISpotSpecularEffect>{ 0x83AE4CD0,0x80AA,0x5783,{ 0x85,0x72,0xF1,0x5E,0x5F,0x85,0x32,0x9E } }; // 83AE4CD0-80AA-5783-8572-F15E5F85329E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IStraightenEffect>{ 0x965FC262,0x2EBA,0x59E6,{ 0x93,0x5F,0x23,0x89,0xCB,0x5A,0x30,0x5A } }; // 965FC262-2EBA-59E6-935F-2389CB5A305A
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ITableTransfer3DEffect>{ 0xEF09C6E0,0x9437,0x53F7,{ 0xB7,0xB4,0xB5,0x3C,0x79,0xA0,0xBC,0x37 } }; // EF09C6E0-9437-53F7-B7B4-B53C79A0BC37
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ITableTransferEffect>{ 0xBF0B63B6,0xFE77,0x5198,{ 0xA2,0xA1,0x3F,0xB8,0x0C,0x26,0x8B,0x8F } }; // BF0B63B6-FE77-5198-A2A1-3FB80C268B8F
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ITemperatureAndTintEffect>{ 0x8AE43E02,0x2619,0x5D78,{ 0x89,0x80,0x4E,0xD5,0x69,0x54,0x9B,0xD8 } }; // 8AE43E02-2619-5D78-8980-4ED569549BD8
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ITileEffect>{ 0x78A809CB,0x1154,0x5AD6,{ 0xA8,0x80,0xE3,0xA1,0x75,0x77,0x28,0x15 } }; // 78A809CB-1154-5AD6-A880-E3A175772815
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ITintEffect>{ 0x729A21EA,0xC61E,0x5308,{ 0x9E,0xAE,0xD6,0x38,0xAA,0x1F,0x5B,0x8C } }; // 729A21EA-C61E-5308-9EAE-D638AA1F5B8C
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ITintEffectStatics>{ 0x65E31771,0x4BAF,0x5C8C,{ 0x93,0xF4,0x3B,0x87,0x4E,0x29,0xF6,0x8D } }; // 65E31771-4BAF-5C8C-93F4-3B874E29F68D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ITransform2DEffect>{ 0x4467D118,0x33E7,0x5B1A,{ 0x87,0xC2,0x0F,0x1F,0x04,0x97,0x35,0x3D } }; // 4467D118-33E7-5B1A-87C2-0F1F0497353D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ITransform3DEffect>{ 0x3025ED7F,0x8F25,0x5E0B,{ 0x80,0xC9,0x56,0xBB,0xDD,0x3E,0x8A,0x10 } }; // 3025ED7F-8F25-5E0B-80C9-56BBDD3E8A10
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::ITurbulenceEffect>{ 0x1CB1B33D,0x20E9,0x564B,{ 0x85,0x6E,0x37,0xE9,0xFA,0x1D,0x00,0x16 } }; // 1CB1B33D-20E9-564B-856E-37E9FA1D0016
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IUnPremultiplyEffect>{ 0x73098BB4,0xDCF1,0x5403,{ 0xAF,0x44,0x33,0x44,0xD2,0x98,0x2D,0x40 } }; // 73098BB4-DCF1-5403-AF44-3344D2982D40
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Effects::IVignetteEffect>{ 0x574D0F9F,0xEEC7,0x5989,{ 0xAC,0x53,0x13,0x58,0x68,0xCF,0x5E,0x0C } }; // 574D0F9F-EEC7-5989-AC53-135868CF5E0C
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::AlphaMaskEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ArithmeticCompositeEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IArithmeticCompositeEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::AtlasEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IAtlasEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::BlendEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IBlendEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::BorderEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IBorderEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::BrightnessEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IBrightnessEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ChromaKeyEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IChromaKeyEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementProfile>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfile; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ColorMatrixEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IColorMatrixEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ColorSourceEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IColorSourceEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::CompositeEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ICompositeEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ContrastEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IContrastEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ConvolveMatrixEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IConvolveMatrixEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::CropEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ICropEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::CrossFadeEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::DirectionalBlurEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IDirectionalBlurEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::DiscreteTransferEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IDiscreteTransferEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::DisplacementMapEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IDisplacementMapEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::DistantDiffuseEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IDistantDiffuseEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::DistantSpecularEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IDistantSpecularEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::DpiCompensationEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IDpiCompensationEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::EdgeDetectionEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IEdgeDetectionEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::EffectTransferTable3D>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3D; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::EmbossEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IEmbossEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ExposureEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IExposureEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::GammaTransferEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IGammaTransferEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::GaussianBlurEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IGaussianBlurEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::GrayscaleEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IGrayscaleEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::HighlightsAndShadowsEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IHighlightsAndShadowsEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::HueRotationEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IHueRotationEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::HueToRgbEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IHueToRgbEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::InvertEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IInvertEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::LinearTransferEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ILinearTransferEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::LuminanceToAlphaEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ILuminanceToAlphaEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::MorphologyEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IMorphologyEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::OpacityEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IOpacityEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::OpacityMetadataEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IOpacityMetadataEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::PixelShaderEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::PointDiffuseEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IPointDiffuseEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::PointSpecularEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IPointSpecularEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::PosterizeEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IPosterizeEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::PremultiplyEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IPremultiplyEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::RgbToHueEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IRgbToHueEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::SaturationEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ISaturationEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ScaleEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IScaleEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::SepiaEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ISepiaEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::ShadowEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IShadowEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::SharpenEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ISharpenEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::SpotDiffuseEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ISpotDiffuseEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::SpotSpecularEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ISpotSpecularEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::StraightenEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IStraightenEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::TableTransfer3DEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ITableTransfer3DEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::TableTransferEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ITableTransferEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::TemperatureAndTintEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ITemperatureAndTintEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::TileEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ITileEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::TintEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ITintEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::Transform2DEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ITransform2DEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::Transform3DEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ITransform3DEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::TurbulenceEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::ITurbulenceEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::UnPremultiplyEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IUnPremultiplyEffect; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Effects::VignetteEffect>{ using type = winrt::Microsoft::Graphics::Canvas::Effects::IVignetteEffect; };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffect>
    {
        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;
            virtual int32_t __stdcall get_AlphaMask(void**) noexcept = 0;
            virtual int32_t __stdcall put_AlphaMask(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffectStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsSupported(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IArithmeticCompositeEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ClampOutput(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ClampOutput(bool) noexcept = 0;
            virtual int32_t __stdcall get_MultiplyAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_MultiplyAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_Source1Amount(float*) noexcept = 0;
            virtual int32_t __stdcall put_Source1Amount(float) noexcept = 0;
            virtual int32_t __stdcall get_Source2Amount(float*) noexcept = 0;
            virtual int32_t __stdcall put_Source2Amount(float) noexcept = 0;
            virtual int32_t __stdcall get_Offset(float*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(float) noexcept = 0;
            virtual int32_t __stdcall get_Source1(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source1(void*) noexcept = 0;
            virtual int32_t __stdcall get_Source2(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source2(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IAtlasEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SourceRectangle(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall put_SourceRectangle(winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall get_PaddingRectangle(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall put_PaddingRectangle(winrt::Windows::Foundation::Rect) 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::Graphics::Canvas::Effects::IBlendEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Mode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Background(void**) noexcept = 0;
            virtual int32_t __stdcall put_Background(void*) noexcept = 0;
            virtual int32_t __stdcall get_Foreground(void**) noexcept = 0;
            virtual int32_t __stdcall put_Foreground(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IBorderEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ExtendX(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_ExtendX(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_ExtendY(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_ExtendY(int32_t) 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::Graphics::Canvas::Effects::IBrightnessEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_WhitePoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_WhitePoint(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_BlackPoint(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_BlackPoint(winrt::Windows::Foundation::Numerics::float2) 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::Graphics::Canvas::Effects::ICanvasEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CacheOutput(bool*) noexcept = 0;
            virtual int32_t __stdcall put_CacheOutput(bool) noexcept = 0;
            virtual int32_t __stdcall get_BufferPrecision(void**) noexcept = 0;
            virtual int32_t __stdcall put_BufferPrecision(void*) noexcept = 0;
            virtual int32_t __stdcall InvalidateSourceRectangle(void*, uint32_t, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall GetInvalidRectangles(void*, uint32_t* __valueElementsSize, winrt::Windows::Foundation::Rect**) noexcept = 0;
            virtual int32_t __stdcall GetRequiredSourceRectangle(void*, winrt::Windows::Foundation::Rect, void*, uint32_t, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall GetRequiredSourceRectangles(void*, winrt::Windows::Foundation::Rect, uint32_t, void**, uint32_t, uint32_t*, uint32_t, winrt::Windows::Foundation::Rect*, uint32_t* __valueElementsSize, winrt::Windows::Foundation::Rect**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IChromaKeyEffect>
    {
        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_Tolerance(float*) noexcept = 0;
            virtual int32_t __stdcall put_Tolerance(float) noexcept = 0;
            virtual int32_t __stdcall get_InvertAlpha(bool*) noexcept = 0;
            virtual int32_t __stdcall put_InvertAlpha(bool) noexcept = 0;
            virtual int32_t __stdcall get_Feather(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Feather(bool) noexcept = 0;
            virtual int32_t __stdcall get_ColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_ColorHdr(winrt::Windows::Foundation::Numerics::float4) 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::Graphics::Canvas::Effects::IColorManagementEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SourceColorProfile(void**) noexcept = 0;
            virtual int32_t __stdcall put_SourceColorProfile(void*) noexcept = 0;
            virtual int32_t __stdcall get_SourceRenderingIntent(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_SourceRenderingIntent(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_OutputColorProfile(void**) noexcept = 0;
            virtual int32_t __stdcall put_OutputColorProfile(void*) noexcept = 0;
            virtual int32_t __stdcall get_OutputRenderingIntent(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_OutputRenderingIntent(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_AlphaMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Quality(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Quality(int32_t) 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::Graphics::Canvas::Effects::IColorManagementEffectStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall IsBestQualitySupported(void*, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfile>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ColorSpace(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_IccProfile(uint32_t* __valueElementsSize, uint8_t**) noexcept = 0;
            virtual int32_t __stdcall get_Type(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_SimpleProfile(void**) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedColorSpace(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateCustom(uint32_t, uint8_t*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateSimple(struct struct_Microsoft_Graphics_Canvas_Effects_ColorManagementSimpleProfile, void**) noexcept = 0;
            virtual int32_t __stdcall CreateExtended(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall IsSupported(int32_t, void*, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IColorMatrixEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ColorMatrix(struct struct_Microsoft_Graphics_Canvas_Effects_Matrix5x4*) noexcept = 0;
            virtual int32_t __stdcall put_ColorMatrix(struct struct_Microsoft_Graphics_Canvas_Effects_Matrix5x4) noexcept = 0;
            virtual int32_t __stdcall get_AlphaMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_ClampOutput(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ClampOutput(bool) 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::Graphics::Canvas::Effects::IColorSourceEffect>
    {
        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_ColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_ColorHdr(winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::ICompositeEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Mode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Sources(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IContrastEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Contrast(float*) noexcept = 0;
            virtual int32_t __stdcall put_Contrast(float) noexcept = 0;
            virtual int32_t __stdcall get_ClampSource(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ClampSource(bool) 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::Graphics::Canvas::Effects::IConvolveMatrixEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_KernelScale(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_KernelScale(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_InterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_InterpolationMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_KernelWidth(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_KernelWidth(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_KernelHeight(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_KernelHeight(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_KernelMatrix(uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall put_KernelMatrix(uint32_t, float*) noexcept = 0;
            virtual int32_t __stdcall get_Divisor(float*) noexcept = 0;
            virtual int32_t __stdcall put_Divisor(float) noexcept = 0;
            virtual int32_t __stdcall get_Offset(float*) noexcept = 0;
            virtual int32_t __stdcall put_Offset(float) noexcept = 0;
            virtual int32_t __stdcall get_KernelOffset(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_KernelOffset(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_PreserveAlpha(bool*) noexcept = 0;
            virtual int32_t __stdcall put_PreserveAlpha(bool) 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_ClampOutput(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ClampOutput(bool) 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::Graphics::Canvas::Effects::ICropEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SourceRectangle(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall put_SourceRectangle(winrt::Windows::Foundation::Rect) 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_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CrossFade(float*) noexcept = 0;
            virtual int32_t __stdcall put_CrossFade(float) noexcept = 0;
            virtual int32_t __stdcall get_Source2(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source2(void*) noexcept = 0;
            virtual int32_t __stdcall get_Source1(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source1(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffectStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsSupported(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IDirectionalBlurEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_BlurAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlurAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_Angle(float*) noexcept = 0;
            virtual int32_t __stdcall put_Angle(float) noexcept = 0;
            virtual int32_t __stdcall get_Optimization(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Optimization(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_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IDiscreteTransferEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_RedTable(uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall put_RedTable(uint32_t, float*) noexcept = 0;
            virtual int32_t __stdcall get_RedDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RedDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_GreenTable(uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall put_GreenTable(uint32_t, float*) noexcept = 0;
            virtual int32_t __stdcall get_GreenDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_GreenDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_BlueTable(uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall put_BlueTable(uint32_t, float*) noexcept = 0;
            virtual int32_t __stdcall get_BlueDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_BlueDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_AlphaTable(uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall put_AlphaTable(uint32_t, float*) noexcept = 0;
            virtual int32_t __stdcall get_AlphaDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_ClampOutput(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ClampOutput(bool) 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::Graphics::Canvas::Effects::IDisplacementMapEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Amount(float*) noexcept = 0;
            virtual int32_t __stdcall put_Amount(float) noexcept = 0;
            virtual int32_t __stdcall get_XChannelSelect(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_XChannelSelect(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_YChannelSelect(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_YChannelSelect(int32_t) 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_Displacement(void**) noexcept = 0;
            virtual int32_t __stdcall put_Displacement(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IDistantDiffuseEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Azimuth(float*) noexcept = 0;
            virtual int32_t __stdcall put_Azimuth(float) noexcept = 0;
            virtual int32_t __stdcall get_Elevation(float*) noexcept = 0;
            virtual int32_t __stdcall put_Elevation(float) noexcept = 0;
            virtual int32_t __stdcall get_DiffuseAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_DiffuseAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapScale(float) noexcept = 0;
            virtual int32_t __stdcall get_LightColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_LightColor(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapInterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapInterpolationMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_LightColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_LightColorHdr(winrt::Windows::Foundation::Numerics::float4) 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::Graphics::Canvas::Effects::IDistantSpecularEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Azimuth(float*) noexcept = 0;
            virtual int32_t __stdcall put_Azimuth(float) noexcept = 0;
            virtual int32_t __stdcall get_Elevation(float*) noexcept = 0;
            virtual int32_t __stdcall put_Elevation(float) noexcept = 0;
            virtual int32_t __stdcall get_SpecularExponent(float*) noexcept = 0;
            virtual int32_t __stdcall put_SpecularExponent(float) noexcept = 0;
            virtual int32_t __stdcall get_SpecularAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_SpecularAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapScale(float) noexcept = 0;
            virtual int32_t __stdcall get_LightColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_LightColor(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapInterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapInterpolationMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_LightColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_LightColorHdr(winrt::Windows::Foundation::Numerics::float4) 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::Graphics::Canvas::Effects::IDpiCompensationEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_InterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_InterpolationMode(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_SourceDpi(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_SourceDpi(winrt::Windows::Foundation::Numerics::float2) 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::Graphics::Canvas::Effects::IEdgeDetectionEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Amount(float*) noexcept = 0;
            virtual int32_t __stdcall put_Amount(float) noexcept = 0;
            virtual int32_t __stdcall get_BlurAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlurAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Mode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_OverlayEdges(bool*) noexcept = 0;
            virtual int32_t __stdcall put_OverlayEdges(bool) noexcept = 0;
            virtual int32_t __stdcall get_AlphaMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaMode(int32_t) 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::Graphics::Canvas::Effects::IEffectTransferTable3D>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Device(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3DStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateFromColors(void*, uint32_t, struct struct_Windows_UI_Color*, int32_t, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromBytes(void*, uint32_t, uint8_t*, int32_t, int32_t, int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IEmbossEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Amount(float*) noexcept = 0;
            virtual int32_t __stdcall put_Amount(float) noexcept = 0;
            virtual int32_t __stdcall get_Angle(float*) noexcept = 0;
            virtual int32_t __stdcall put_Angle(float) 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::Graphics::Canvas::Effects::IExposureEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Exposure(float*) noexcept = 0;
            virtual int32_t __stdcall put_Exposure(float) 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::Graphics::Canvas::Effects::IGammaTransferEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_RedAmplitude(float*) noexcept = 0;
            virtual int32_t __stdcall put_RedAmplitude(float) noexcept = 0;
            virtual int32_t __stdcall get_RedExponent(float*) noexcept = 0;
            virtual int32_t __stdcall put_RedExponent(float) noexcept = 0;
            virtual int32_t __stdcall get_RedOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_RedOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_RedDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RedDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_GreenAmplitude(float*) noexcept = 0;
            virtual int32_t __stdcall put_GreenAmplitude(float) noexcept = 0;
            virtual int32_t __stdcall get_GreenExponent(float*) noexcept = 0;
            virtual int32_t __stdcall put_GreenExponent(float) noexcept = 0;
            virtual int32_t __stdcall get_GreenOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_GreenOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_GreenDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_GreenDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_BlueAmplitude(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlueAmplitude(float) noexcept = 0;
            virtual int32_t __stdcall get_BlueExponent(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlueExponent(float) noexcept = 0;
            virtual int32_t __stdcall get_BlueOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlueOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_BlueDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_BlueDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_AlphaAmplitude(float*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaAmplitude(float) noexcept = 0;
            virtual int32_t __stdcall get_AlphaExponent(float*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaExponent(float) noexcept = 0;
            virtual int32_t __stdcall get_AlphaOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_AlphaDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_ClampOutput(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ClampOutput(bool) 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::Graphics::Canvas::Effects::IGaussianBlurEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_BlurAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlurAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_Optimization(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Optimization(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_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IGrayscaleEffect>
    {
        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::Graphics::Canvas::Effects::IHighlightsAndShadowsEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Highlights(float*) noexcept = 0;
            virtual int32_t __stdcall put_Highlights(float) noexcept = 0;
            virtual int32_t __stdcall get_Shadows(float*) noexcept = 0;
            virtual int32_t __stdcall put_Shadows(float) noexcept = 0;
            virtual int32_t __stdcall get_Clarity(float*) noexcept = 0;
            virtual int32_t __stdcall put_Clarity(float) noexcept = 0;
            virtual int32_t __stdcall get_MaskBlurAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_MaskBlurAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_SourceIsLinearGamma(bool*) noexcept = 0;
            virtual int32_t __stdcall put_SourceIsLinearGamma(bool) 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::Graphics::Canvas::Effects::IHueRotationEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Angle(float*) noexcept = 0;
            virtual int32_t __stdcall put_Angle(float) 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::Graphics::Canvas::Effects::IHueToRgbEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SourceColorSpace(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_SourceColorSpace(int32_t) 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::Graphics::Canvas::Effects::IInvertEffect>
    {
        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::Graphics::Canvas::Effects::ILinearTransferEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_RedOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_RedOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_RedSlope(float*) noexcept = 0;
            virtual int32_t __stdcall put_RedSlope(float) noexcept = 0;
            virtual int32_t __stdcall get_RedDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RedDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_GreenOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_GreenOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_GreenSlope(float*) noexcept = 0;
            virtual int32_t __stdcall put_GreenSlope(float) noexcept = 0;
            virtual int32_t __stdcall get_GreenDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_GreenDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_BlueOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlueOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_BlueSlope(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlueSlope(float) noexcept = 0;
            virtual int32_t __stdcall get_BlueDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_BlueDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_AlphaOffset(float*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaOffset(float) noexcept = 0;
            virtual int32_t __stdcall get_AlphaSlope(float*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaSlope(float) noexcept = 0;
            virtual int32_t __stdcall get_AlphaDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_ClampOutput(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ClampOutput(bool) 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::Graphics::Canvas::Effects::ILuminanceToAlphaEffect>
    {
        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::Graphics::Canvas::Effects::IMorphologyEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Mode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Width(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Width(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Height(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Height(int32_t) 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::Graphics::Canvas::Effects::IOpacityEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Opacity(float*) noexcept = 0;
            virtual int32_t __stdcall put_Opacity(float) 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::Graphics::Canvas::Effects::IOpacityEffectStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsSupported(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityMetadataEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_OpaqueRectangle(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall put_OpaqueRectangle(winrt::Windows::Foundation::Rect) 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::Graphics::Canvas::Effects::IPixelShaderEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Properties(void**) noexcept = 0;
            virtual int32_t __stdcall get_Source1(void**) noexcept = 0;
            virtual int32_t __stdcall get_Source2(void**) noexcept = 0;
            virtual int32_t __stdcall get_Source3(void**) noexcept = 0;
            virtual int32_t __stdcall get_Source4(void**) noexcept = 0;
            virtual int32_t __stdcall get_Source5(void**) noexcept = 0;
            virtual int32_t __stdcall get_Source6(void**) noexcept = 0;
            virtual int32_t __stdcall get_Source7(void**) noexcept = 0;
            virtual int32_t __stdcall get_Source8(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source1(void*) noexcept = 0;
            virtual int32_t __stdcall put_Source2(void*) noexcept = 0;
            virtual int32_t __stdcall put_Source3(void*) noexcept = 0;
            virtual int32_t __stdcall put_Source4(void*) noexcept = 0;
            virtual int32_t __stdcall put_Source5(void*) noexcept = 0;
            virtual int32_t __stdcall put_Source6(void*) noexcept = 0;
            virtual int32_t __stdcall put_Source7(void*) noexcept = 0;
            virtual int32_t __stdcall put_Source8(void*) noexcept = 0;
            virtual int32_t __stdcall get_Source1Mapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source2Mapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source3Mapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source4Mapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source5Mapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source6Mapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source7Mapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source8Mapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Source1Mapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source2Mapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source3Mapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source4Mapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source5Mapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source6Mapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source7Mapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source8Mapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Source1BorderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source2BorderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source3BorderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source4BorderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source5BorderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source6BorderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source7BorderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source8BorderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Source1BorderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source2BorderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source3BorderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source4BorderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source5BorderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source6BorderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source7BorderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source8BorderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_MaxSamplerOffset(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_MaxSamplerOffset(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Source1Interpolation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source2Interpolation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source3Interpolation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source4Interpolation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source5Interpolation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source6Interpolation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source7Interpolation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Source8Interpolation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Source1Interpolation(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source2Interpolation(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source3Interpolation(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source4Interpolation(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source5Interpolation(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source6Interpolation(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source7Interpolation(int32_t) noexcept = 0;
            virtual int32_t __stdcall put_Source8Interpolation(int32_t) noexcept = 0;
            virtual int32_t __stdcall IsSupported(void*, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffectFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(uint32_t, uint8_t*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IPointDiffuseEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_LightPosition(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_LightPosition(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_DiffuseAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_DiffuseAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapScale(float) noexcept = 0;
            virtual int32_t __stdcall get_LightColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_LightColor(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapInterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapInterpolationMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_LightColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_LightColorHdr(winrt::Windows::Foundation::Numerics::float4) 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::Graphics::Canvas::Effects::IPointSpecularEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_LightPosition(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_LightPosition(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_SpecularExponent(float*) noexcept = 0;
            virtual int32_t __stdcall put_SpecularExponent(float) noexcept = 0;
            virtual int32_t __stdcall get_SpecularAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_SpecularAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapScale(float) noexcept = 0;
            virtual int32_t __stdcall get_LightColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_LightColor(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapInterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapInterpolationMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_LightColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_LightColorHdr(winrt::Windows::Foundation::Numerics::float4) 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::Graphics::Canvas::Effects::IPosterizeEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_RedValueCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_RedValueCount(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_GreenValueCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_GreenValueCount(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_BlueValueCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_BlueValueCount(int32_t) 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::Graphics::Canvas::Effects::IPremultiplyEffect>
    {
        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::Graphics::Canvas::Effects::IRgbToHueEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_OutputColorSpace(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_OutputColorSpace(int32_t) 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::Graphics::Canvas::Effects::ISaturationEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Saturation(float*) noexcept = 0;
            virtual int32_t __stdcall put_Saturation(float) 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::Graphics::Canvas::Effects::IScaleEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            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_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_InterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_InterpolationMode(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_Sharpness(float*) noexcept = 0;
            virtual int32_t __stdcall put_Sharpness(float) 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::Graphics::Canvas::Effects::ISepiaEffect>
    {
        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;
            virtual int32_t __stdcall get_AlphaMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaMode(int32_t) 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::Graphics::Canvas::Effects::IShadowEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_BlurAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_BlurAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_ShadowColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_ShadowColor(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_Optimization(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Optimization(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_ShadowColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_ShadowColorHdr(winrt::Windows::Foundation::Numerics::float4) 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::Graphics::Canvas::Effects::ISharpenEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Amount(float*) noexcept = 0;
            virtual int32_t __stdcall put_Amount(float) noexcept = 0;
            virtual int32_t __stdcall get_Threshold(float*) noexcept = 0;
            virtual int32_t __stdcall put_Threshold(float) 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::Graphics::Canvas::Effects::ISpotDiffuseEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_LightPosition(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_LightPosition(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_LightTarget(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_LightTarget(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_Focus(float*) noexcept = 0;
            virtual int32_t __stdcall put_Focus(float) noexcept = 0;
            virtual int32_t __stdcall get_LimitingConeAngle(float*) noexcept = 0;
            virtual int32_t __stdcall put_LimitingConeAngle(float) noexcept = 0;
            virtual int32_t __stdcall get_DiffuseAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_DiffuseAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapScale(float) noexcept = 0;
            virtual int32_t __stdcall get_LightColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_LightColor(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapInterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapInterpolationMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_LightColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_LightColorHdr(winrt::Windows::Foundation::Numerics::float4) 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::Graphics::Canvas::Effects::ISpotSpecularEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_LightPosition(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_LightPosition(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_LightTarget(winrt::Windows::Foundation::Numerics::float3*) noexcept = 0;
            virtual int32_t __stdcall put_LightTarget(winrt::Windows::Foundation::Numerics::float3) noexcept = 0;
            virtual int32_t __stdcall get_Focus(float*) noexcept = 0;
            virtual int32_t __stdcall put_Focus(float) noexcept = 0;
            virtual int32_t __stdcall get_LimitingConeAngle(float*) noexcept = 0;
            virtual int32_t __stdcall put_LimitingConeAngle(float) noexcept = 0;
            virtual int32_t __stdcall get_SpecularExponent(float*) noexcept = 0;
            virtual int32_t __stdcall put_SpecularExponent(float) noexcept = 0;
            virtual int32_t __stdcall get_SpecularAmount(float*) noexcept = 0;
            virtual int32_t __stdcall put_SpecularAmount(float) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapScale(float*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapScale(float) noexcept = 0;
            virtual int32_t __stdcall get_LightColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall put_LightColor(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_HeightMapInterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_HeightMapInterpolationMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_LightColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_LightColorHdr(winrt::Windows::Foundation::Numerics::float4) 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::Graphics::Canvas::Effects::IStraightenEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Angle(float*) noexcept = 0;
            virtual int32_t __stdcall put_Angle(float) noexcept = 0;
            virtual int32_t __stdcall get_MaintainSize(bool*) noexcept = 0;
            virtual int32_t __stdcall put_MaintainSize(bool) noexcept = 0;
            virtual int32_t __stdcall get_InterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_InterpolationMode(int32_t) 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::Graphics::Canvas::Effects::ITableTransfer3DEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Table(void**) noexcept = 0;
            virtual int32_t __stdcall put_Table(void*) noexcept = 0;
            virtual int32_t __stdcall get_AlphaMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaMode(int32_t) 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::Graphics::Canvas::Effects::ITableTransferEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_RedTable(uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall put_RedTable(uint32_t, float*) noexcept = 0;
            virtual int32_t __stdcall get_RedDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RedDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_GreenTable(uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall put_GreenTable(uint32_t, float*) noexcept = 0;
            virtual int32_t __stdcall get_GreenDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_GreenDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_BlueTable(uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall put_BlueTable(uint32_t, float*) noexcept = 0;
            virtual int32_t __stdcall get_BlueDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_BlueDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_AlphaTable(uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall put_AlphaTable(uint32_t, float*) noexcept = 0;
            virtual int32_t __stdcall get_AlphaDisable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AlphaDisable(bool) noexcept = 0;
            virtual int32_t __stdcall get_ClampOutput(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ClampOutput(bool) 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::Graphics::Canvas::Effects::ITemperatureAndTintEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Temperature(float*) noexcept = 0;
            virtual int32_t __stdcall put_Temperature(float) noexcept = 0;
            virtual int32_t __stdcall get_Tint(float*) noexcept = 0;
            virtual int32_t __stdcall put_Tint(float) 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::Graphics::Canvas::Effects::ITileEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SourceRectangle(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall put_SourceRectangle(winrt::Windows::Foundation::Rect) 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::Graphics::Canvas::Effects::ITintEffect>
    {
        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_ClampOutput(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ClampOutput(bool) noexcept = 0;
            virtual int32_t __stdcall get_ColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_ColorHdr(winrt::Windows::Foundation::Numerics::float4) 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::Graphics::Canvas::Effects::ITintEffectStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsSupported(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::ITransform2DEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_InterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_InterpolationMode(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_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2*) noexcept = 0;
            virtual int32_t __stdcall put_TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2) noexcept = 0;
            virtual int32_t __stdcall get_Sharpness(float*) noexcept = 0;
            virtual int32_t __stdcall put_Sharpness(float) 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::Graphics::Canvas::Effects::ITransform3DEffect>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_InterpolationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_InterpolationMode(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_TransformMatrix(winrt::Windows::Foundation::Numerics::float4x4*) noexcept = 0;
            virtual int32_t __stdcall put_TransformMatrix(winrt::Windows::Foundation::Numerics::float4x4) 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::Graphics::Canvas::Effects::ITurbulenceEffect>
    {
        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;
            virtual int32_t __stdcall get_Frequency(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall put_Frequency(winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall get_Octaves(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Octaves(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Seed(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Seed(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Noise(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Noise(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Tileable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Tileable(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Effects::IUnPremultiplyEffect>
    {
        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::Graphics::Canvas::Effects::IVignetteEffect>
    {
        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_Amount(float*) noexcept = 0;
            virtual int32_t __stdcall put_Amount(float) noexcept = 0;
            virtual int32_t __stdcall get_Curve(float*) noexcept = 0;
            virtual int32_t __stdcall put_Curve(float) noexcept = 0;
            virtual int32_t __stdcall get_ColorHdr(winrt::Windows::Foundation::Numerics::float4*) noexcept = 0;
            virtual int32_t __stdcall put_ColorHdr(winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall get_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IAlphaMaskEffect
    {
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        [[nodiscard]] auto AlphaMask() const;
        auto AlphaMask(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IAlphaMaskEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IAlphaMaskEffectStatics
    {
        [[nodiscard]] auto IsSupported() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IAlphaMaskEffectStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IAlphaMaskEffectStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IArithmeticCompositeEffect
    {
        [[nodiscard]] auto ClampOutput() const;
        auto ClampOutput(bool value) const;
        [[nodiscard]] auto MultiplyAmount() const;
        auto MultiplyAmount(float value) const;
        [[nodiscard]] auto Source1Amount() const;
        auto Source1Amount(float value) const;
        [[nodiscard]] auto Source2Amount() const;
        auto Source2Amount(float value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(float value) const;
        [[nodiscard]] auto Source1() const;
        auto Source1(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        [[nodiscard]] auto Source2() const;
        auto Source2(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IArithmeticCompositeEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IArithmeticCompositeEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IAtlasEffect
    {
        [[nodiscard]] auto SourceRectangle() const;
        auto SourceRectangle(winrt::Windows::Foundation::Rect const& value) const;
        [[nodiscard]] auto PaddingRectangle() const;
        auto PaddingRectangle(winrt::Windows::Foundation::Rect const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IAtlasEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IAtlasEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IBlendEffect
    {
        [[nodiscard]] auto Mode() const;
        auto Mode(winrt::Microsoft::Graphics::Canvas::Effects::BlendEffectMode const& value) const;
        [[nodiscard]] auto Background() const;
        auto Background(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        [[nodiscard]] auto Foreground() const;
        auto Foreground(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IBlendEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IBlendEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IBorderEffect
    {
        [[nodiscard]] auto ExtendX() const;
        auto ExtendX(winrt::Microsoft::Graphics::Canvas::CanvasEdgeBehavior const& value) const;
        [[nodiscard]] auto ExtendY() const;
        auto ExtendY(winrt::Microsoft::Graphics::Canvas::CanvasEdgeBehavior const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IBorderEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IBorderEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IBrightnessEffect
    {
        [[nodiscard]] auto WhitePoint() const;
        auto WhitePoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto BlackPoint() const;
        auto BlackPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IBrightnessEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IBrightnessEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ICanvasEffect
    {
        [[nodiscard]] auto CacheOutput() const;
        auto CacheOutput(bool value) const;
        [[nodiscard]] auto BufferPrecision() const;
        auto BufferPrecision(winrt::Windows::Foundation::IReference<winrt::Microsoft::Graphics::Canvas::CanvasBufferPrecision> const& value) const;
        auto InvalidateSourceRectangle(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, uint32_t sourceIndex, winrt::Windows::Foundation::Rect const& invalidRectangle) const;
        auto GetInvalidRectangles(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator) const;
        auto GetRequiredSourceRectangle(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, winrt::Windows::Foundation::Rect const& outputRectangle, winrt::Microsoft::Graphics::Canvas::Effects::ICanvasEffect const& sourceEffect, uint32_t sourceIndex, winrt::Windows::Foundation::Rect const& sourceBounds) const;
        auto GetRequiredSourceRectangles(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, winrt::Windows::Foundation::Rect const& outputRectangle, array_view<winrt::Microsoft::Graphics::Canvas::Effects::ICanvasEffect const> sourceEffects, array_view<uint32_t const> sourceIndices, array_view<winrt::Windows::Foundation::Rect const> sourceBounds) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ICanvasEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ICanvasEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IChromaKeyEffect
    {
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto Tolerance() const;
        auto Tolerance(float value) const;
        [[nodiscard]] auto InvertAlpha() const;
        auto InvertAlpha(bool value) const;
        [[nodiscard]] auto Feather() const;
        auto Feather(bool value) const;
        [[nodiscard]] auto ColorHdr() const;
        auto ColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IChromaKeyEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IChromaKeyEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IColorManagementEffect
    {
        [[nodiscard]] auto SourceColorProfile() const;
        auto SourceColorProfile(winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementProfile const& value) const;
        [[nodiscard]] auto SourceRenderingIntent() const;
        auto SourceRenderingIntent(winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementRenderingIntent const& value) const;
        [[nodiscard]] auto OutputColorProfile() const;
        auto OutputColorProfile(winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementProfile const& value) const;
        [[nodiscard]] auto OutputRenderingIntent() const;
        auto OutputRenderingIntent(winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementRenderingIntent const& value) const;
        [[nodiscard]] auto AlphaMode() const;
        auto AlphaMode(winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& value) const;
        [[nodiscard]] auto Quality() const;
        auto Quality(winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementEffectQuality const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IColorManagementEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IColorManagementEffectStatics
    {
        auto IsBestQualitySupported(winrt::Microsoft::Graphics::Canvas::CanvasDevice const& device) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementEffectStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IColorManagementEffectStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IColorManagementProfile
    {
        [[nodiscard]] auto ColorSpace() const;
        [[nodiscard]] auto IccProfile() const;
        [[nodiscard]] auto Type() const;
        [[nodiscard]] auto SimpleProfile() const;
        [[nodiscard]] auto ExtendedColorSpace() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfile>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IColorManagementProfile<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IColorManagementProfileFactory
    {
        auto Create(winrt::Microsoft::Graphics::Canvas::CanvasColorSpace const& colorSpace) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IColorManagementProfileFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IColorManagementProfileStatics
    {
        auto CreateCustom(array_view<uint8_t const> iccProfile) const;
        auto CreateSimple(winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementSimpleProfile const& simpleProfile) const;
        auto CreateExtended(winrt::Microsoft::Graphics::Canvas::Effects::ExtendedColorSpace const& colorSpace) const;
        auto IsSupported(winrt::Microsoft::Graphics::Canvas::Effects::ColorManagementProfileType const& type, winrt::Microsoft::Graphics::Canvas::CanvasDevice const& device) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IColorManagementProfileStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IColorManagementProfileStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IColorMatrixEffect
    {
        [[nodiscard]] auto ColorMatrix() const;
        auto ColorMatrix(winrt::Microsoft::Graphics::Canvas::Effects::Matrix5x4 const& value) const;
        [[nodiscard]] auto AlphaMode() const;
        auto AlphaMode(winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& value) const;
        [[nodiscard]] auto ClampOutput() const;
        auto ClampOutput(bool value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IColorMatrixEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IColorMatrixEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IColorSourceEffect
    {
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto ColorHdr() const;
        auto ColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IColorSourceEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IColorSourceEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ICompositeEffect
    {
        [[nodiscard]] auto Mode() const;
        auto Mode(winrt::Microsoft::Graphics::Canvas::CanvasComposite const& value) const;
        [[nodiscard]] auto Sources() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ICompositeEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ICompositeEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IContrastEffect
    {
        [[nodiscard]] auto Contrast() const;
        auto Contrast(float value) const;
        [[nodiscard]] auto ClampSource() const;
        auto ClampSource(bool value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IContrastEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IContrastEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IConvolveMatrixEffect
    {
        [[nodiscard]] auto KernelScale() const;
        auto KernelScale(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto InterpolationMode() const;
        auto InterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto KernelWidth() const;
        auto KernelWidth(int32_t value) const;
        [[nodiscard]] auto KernelHeight() const;
        auto KernelHeight(int32_t value) const;
        [[nodiscard]] auto KernelMatrix() const;
        auto KernelMatrix(array_view<float const> valueElements) const;
        [[nodiscard]] auto Divisor() const;
        auto Divisor(float value) const;
        [[nodiscard]] auto Offset() const;
        auto Offset(float value) const;
        [[nodiscard]] auto KernelOffset() const;
        auto KernelOffset(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto PreserveAlpha() const;
        auto PreserveAlpha(bool value) const;
        [[nodiscard]] auto BorderMode() const;
        auto BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        [[nodiscard]] auto ClampOutput() const;
        auto ClampOutput(bool value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IConvolveMatrixEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IConvolveMatrixEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ICropEffect
    {
        [[nodiscard]] auto SourceRectangle() const;
        auto SourceRectangle(winrt::Windows::Foundation::Rect const& value) const;
        [[nodiscard]] auto BorderMode() const;
        auto BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ICropEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ICropEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ICrossFadeEffect
    {
        [[nodiscard]] auto CrossFade() const;
        auto CrossFade(float value) const;
        [[nodiscard]] auto Source2() const;
        auto Source2(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        [[nodiscard]] auto Source1() const;
        auto Source1(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ICrossFadeEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ICrossFadeEffectStatics
    {
        [[nodiscard]] auto IsSupported() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ICrossFadeEffectStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ICrossFadeEffectStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IDirectionalBlurEffect
    {
        [[nodiscard]] auto BlurAmount() const;
        auto BlurAmount(float value) const;
        [[nodiscard]] auto Angle() const;
        auto Angle(float value) const;
        [[nodiscard]] auto Optimization() const;
        auto Optimization(winrt::Microsoft::Graphics::Canvas::Effects::EffectOptimization const& value) const;
        [[nodiscard]] auto BorderMode() const;
        auto BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IDirectionalBlurEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IDirectionalBlurEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IDiscreteTransferEffect
    {
        [[nodiscard]] auto RedTable() const;
        auto RedTable(array_view<float const> valueElements) const;
        [[nodiscard]] auto RedDisable() const;
        auto RedDisable(bool value) const;
        [[nodiscard]] auto GreenTable() const;
        auto GreenTable(array_view<float const> valueElements) const;
        [[nodiscard]] auto GreenDisable() const;
        auto GreenDisable(bool value) const;
        [[nodiscard]] auto BlueTable() const;
        auto BlueTable(array_view<float const> valueElements) const;
        [[nodiscard]] auto BlueDisable() const;
        auto BlueDisable(bool value) const;
        [[nodiscard]] auto AlphaTable() const;
        auto AlphaTable(array_view<float const> valueElements) const;
        [[nodiscard]] auto AlphaDisable() const;
        auto AlphaDisable(bool value) const;
        [[nodiscard]] auto ClampOutput() const;
        auto ClampOutput(bool value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IDiscreteTransferEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IDiscreteTransferEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IDisplacementMapEffect
    {
        [[nodiscard]] auto Amount() const;
        auto Amount(float value) const;
        [[nodiscard]] auto XChannelSelect() const;
        auto XChannelSelect(winrt::Microsoft::Graphics::Canvas::Effects::EffectChannelSelect const& value) const;
        [[nodiscard]] auto YChannelSelect() const;
        auto YChannelSelect(winrt::Microsoft::Graphics::Canvas::Effects::EffectChannelSelect const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        [[nodiscard]] auto Displacement() const;
        auto Displacement(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IDisplacementMapEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IDisplacementMapEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IDistantDiffuseEffect
    {
        [[nodiscard]] auto Azimuth() const;
        auto Azimuth(float value) const;
        [[nodiscard]] auto Elevation() const;
        auto Elevation(float value) const;
        [[nodiscard]] auto DiffuseAmount() const;
        auto DiffuseAmount(float value) const;
        [[nodiscard]] auto HeightMapScale() const;
        auto HeightMapScale(float value) const;
        [[nodiscard]] auto LightColor() const;
        auto LightColor(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto HeightMapKernelSize() const;
        auto HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto HeightMapInterpolationMode() const;
        auto HeightMapInterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto LightColorHdr() const;
        auto LightColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IDistantDiffuseEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IDistantDiffuseEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IDistantSpecularEffect
    {
        [[nodiscard]] auto Azimuth() const;
        auto Azimuth(float value) const;
        [[nodiscard]] auto Elevation() const;
        auto Elevation(float value) const;
        [[nodiscard]] auto SpecularExponent() const;
        auto SpecularExponent(float value) const;
        [[nodiscard]] auto SpecularAmount() const;
        auto SpecularAmount(float value) const;
        [[nodiscard]] auto HeightMapScale() const;
        auto HeightMapScale(float value) const;
        [[nodiscard]] auto LightColor() const;
        auto LightColor(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto HeightMapKernelSize() const;
        auto HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto HeightMapInterpolationMode() const;
        auto HeightMapInterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto LightColorHdr() const;
        auto LightColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IDistantSpecularEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IDistantSpecularEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IDpiCompensationEffect
    {
        [[nodiscard]] auto InterpolationMode() const;
        auto InterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto BorderMode() const;
        auto BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        [[nodiscard]] auto SourceDpi() const;
        auto SourceDpi(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IDpiCompensationEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IDpiCompensationEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IEdgeDetectionEffect
    {
        [[nodiscard]] auto Amount() const;
        auto Amount(float value) const;
        [[nodiscard]] auto BlurAmount() const;
        auto BlurAmount(float value) const;
        [[nodiscard]] auto Mode() const;
        auto Mode(winrt::Microsoft::Graphics::Canvas::Effects::EdgeDetectionEffectMode const& value) const;
        [[nodiscard]] auto OverlayEdges() const;
        auto OverlayEdges(bool value) const;
        [[nodiscard]] auto AlphaMode() const;
        auto AlphaMode(winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IEdgeDetectionEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IEdgeDetectionEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IEffectTransferTable3D
    {
        [[nodiscard]] auto Device() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3D>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IEffectTransferTable3D<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IEffectTransferTable3DStatics
    {
        auto CreateFromColors(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, array_view<winrt::Windows::UI::Color const> colors, int32_t sizeB, int32_t sizeG, int32_t sizeR) const;
        auto CreateFromBytes(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, array_view<uint8_t const> bytes, int32_t sizeB, int32_t sizeG, int32_t sizeR, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IEffectTransferTable3DStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IEffectTransferTable3DStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IEmbossEffect
    {
        [[nodiscard]] auto Amount() const;
        auto Amount(float value) const;
        [[nodiscard]] auto Angle() const;
        auto Angle(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IEmbossEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IEmbossEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IExposureEffect
    {
        [[nodiscard]] auto Exposure() const;
        auto Exposure(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IExposureEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IExposureEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IGammaTransferEffect
    {
        [[nodiscard]] auto RedAmplitude() const;
        auto RedAmplitude(float value) const;
        [[nodiscard]] auto RedExponent() const;
        auto RedExponent(float value) const;
        [[nodiscard]] auto RedOffset() const;
        auto RedOffset(float value) const;
        [[nodiscard]] auto RedDisable() const;
        auto RedDisable(bool value) const;
        [[nodiscard]] auto GreenAmplitude() const;
        auto GreenAmplitude(float value) const;
        [[nodiscard]] auto GreenExponent() const;
        auto GreenExponent(float value) const;
        [[nodiscard]] auto GreenOffset() const;
        auto GreenOffset(float value) const;
        [[nodiscard]] auto GreenDisable() const;
        auto GreenDisable(bool value) const;
        [[nodiscard]] auto BlueAmplitude() const;
        auto BlueAmplitude(float value) const;
        [[nodiscard]] auto BlueExponent() const;
        auto BlueExponent(float value) const;
        [[nodiscard]] auto BlueOffset() const;
        auto BlueOffset(float value) const;
        [[nodiscard]] auto BlueDisable() const;
        auto BlueDisable(bool value) const;
        [[nodiscard]] auto AlphaAmplitude() const;
        auto AlphaAmplitude(float value) const;
        [[nodiscard]] auto AlphaExponent() const;
        auto AlphaExponent(float value) const;
        [[nodiscard]] auto AlphaOffset() const;
        auto AlphaOffset(float value) const;
        [[nodiscard]] auto AlphaDisable() const;
        auto AlphaDisable(bool value) const;
        [[nodiscard]] auto ClampOutput() const;
        auto ClampOutput(bool value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IGammaTransferEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IGammaTransferEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IGaussianBlurEffect
    {
        [[nodiscard]] auto BlurAmount() const;
        auto BlurAmount(float value) const;
        [[nodiscard]] auto Optimization() const;
        auto Optimization(winrt::Microsoft::Graphics::Canvas::Effects::EffectOptimization const& value) const;
        [[nodiscard]] auto BorderMode() const;
        auto BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IGaussianBlurEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IGaussianBlurEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IGrayscaleEffect
    {
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IGrayscaleEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IGrayscaleEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IHighlightsAndShadowsEffect
    {
        [[nodiscard]] auto Highlights() const;
        auto Highlights(float value) const;
        [[nodiscard]] auto Shadows() const;
        auto Shadows(float value) const;
        [[nodiscard]] auto Clarity() const;
        auto Clarity(float value) const;
        [[nodiscard]] auto MaskBlurAmount() const;
        auto MaskBlurAmount(float value) const;
        [[nodiscard]] auto SourceIsLinearGamma() const;
        auto SourceIsLinearGamma(bool value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IHighlightsAndShadowsEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IHighlightsAndShadowsEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IHueRotationEffect
    {
        [[nodiscard]] auto Angle() const;
        auto Angle(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IHueRotationEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IHueRotationEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IHueToRgbEffect
    {
        [[nodiscard]] auto SourceColorSpace() const;
        auto SourceColorSpace(winrt::Microsoft::Graphics::Canvas::Effects::EffectHueColorSpace const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IHueToRgbEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IHueToRgbEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IInvertEffect
    {
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IInvertEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IInvertEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ILinearTransferEffect
    {
        [[nodiscard]] auto RedOffset() const;
        auto RedOffset(float value) const;
        [[nodiscard]] auto RedSlope() const;
        auto RedSlope(float value) const;
        [[nodiscard]] auto RedDisable() const;
        auto RedDisable(bool value) const;
        [[nodiscard]] auto GreenOffset() const;
        auto GreenOffset(float value) const;
        [[nodiscard]] auto GreenSlope() const;
        auto GreenSlope(float value) const;
        [[nodiscard]] auto GreenDisable() const;
        auto GreenDisable(bool value) const;
        [[nodiscard]] auto BlueOffset() const;
        auto BlueOffset(float value) const;
        [[nodiscard]] auto BlueSlope() const;
        auto BlueSlope(float value) const;
        [[nodiscard]] auto BlueDisable() const;
        auto BlueDisable(bool value) const;
        [[nodiscard]] auto AlphaOffset() const;
        auto AlphaOffset(float value) const;
        [[nodiscard]] auto AlphaSlope() const;
        auto AlphaSlope(float value) const;
        [[nodiscard]] auto AlphaDisable() const;
        auto AlphaDisable(bool value) const;
        [[nodiscard]] auto ClampOutput() const;
        auto ClampOutput(bool value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ILinearTransferEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ILinearTransferEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ILuminanceToAlphaEffect
    {
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ILuminanceToAlphaEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ILuminanceToAlphaEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IMorphologyEffect
    {
        [[nodiscard]] auto Mode() const;
        auto Mode(winrt::Microsoft::Graphics::Canvas::Effects::MorphologyEffectMode const& value) const;
        [[nodiscard]] auto Width() const;
        auto Width(int32_t value) const;
        [[nodiscard]] auto Height() const;
        auto Height(int32_t value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IMorphologyEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IMorphologyEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IOpacityEffect
    {
        [[nodiscard]] auto Opacity() const;
        auto Opacity(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IOpacityEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IOpacityEffectStatics
    {
        [[nodiscard]] auto IsSupported() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityEffectStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IOpacityEffectStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IOpacityMetadataEffect
    {
        [[nodiscard]] auto OpaqueRectangle() const;
        auto OpaqueRectangle(winrt::Windows::Foundation::Rect const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IOpacityMetadataEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IOpacityMetadataEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IPixelShaderEffect
    {
        [[nodiscard]] auto Properties() const;
        [[nodiscard]] auto Source1() const;
        [[nodiscard]] auto Source2() const;
        [[nodiscard]] auto Source3() const;
        [[nodiscard]] auto Source4() const;
        [[nodiscard]] auto Source5() const;
        [[nodiscard]] auto Source6() const;
        [[nodiscard]] auto Source7() const;
        [[nodiscard]] auto Source8() const;
        auto Source1(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        auto Source2(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        auto Source3(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        auto Source4(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        auto Source5(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        auto Source6(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        auto Source7(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        auto Source8(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
        [[nodiscard]] auto Source1Mapping() const;
        [[nodiscard]] auto Source2Mapping() const;
        [[nodiscard]] auto Source3Mapping() const;
        [[nodiscard]] auto Source4Mapping() const;
        [[nodiscard]] auto Source5Mapping() const;
        [[nodiscard]] auto Source6Mapping() const;
        [[nodiscard]] auto Source7Mapping() const;
        [[nodiscard]] auto Source8Mapping() const;
        auto Source1Mapping(winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping const& value) const;
        auto Source2Mapping(winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping const& value) const;
        auto Source3Mapping(winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping const& value) const;
        auto Source4Mapping(winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping const& value) const;
        auto Source5Mapping(winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping const& value) const;
        auto Source6Mapping(winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping const& value) const;
        auto Source7Mapping(winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping const& value) const;
        auto Source8Mapping(winrt::Microsoft::Graphics::Canvas::Effects::SamplerCoordinateMapping const& value) const;
        [[nodiscard]] auto Source1BorderMode() const;
        [[nodiscard]] auto Source2BorderMode() const;
        [[nodiscard]] auto Source3BorderMode() const;
        [[nodiscard]] auto Source4BorderMode() const;
        [[nodiscard]] auto Source5BorderMode() const;
        [[nodiscard]] auto Source6BorderMode() const;
        [[nodiscard]] auto Source7BorderMode() const;
        [[nodiscard]] auto Source8BorderMode() const;
        auto Source1BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        auto Source2BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        auto Source3BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        auto Source4BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        auto Source5BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        auto Source6BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        auto Source7BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        auto Source8BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        [[nodiscard]] auto MaxSamplerOffset() const;
        auto MaxSamplerOffset(int32_t value) const;
        [[nodiscard]] auto Source1Interpolation() const;
        [[nodiscard]] auto Source2Interpolation() const;
        [[nodiscard]] auto Source3Interpolation() const;
        [[nodiscard]] auto Source4Interpolation() const;
        [[nodiscard]] auto Source5Interpolation() const;
        [[nodiscard]] auto Source6Interpolation() const;
        [[nodiscard]] auto Source7Interpolation() const;
        [[nodiscard]] auto Source8Interpolation() const;
        auto Source1Interpolation(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        auto Source2Interpolation(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        auto Source3Interpolation(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        auto Source4Interpolation(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        auto Source5Interpolation(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        auto Source6Interpolation(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        auto Source7Interpolation(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        auto Source8Interpolation(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        auto IsSupported(winrt::Microsoft::Graphics::Canvas::CanvasDevice const& device) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IPixelShaderEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IPixelShaderEffectFactory
    {
        auto Create(array_view<uint8_t const> shaderCode) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IPixelShaderEffectFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IPixelShaderEffectFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IPointDiffuseEffect
    {
        [[nodiscard]] auto LightPosition() const;
        auto LightPosition(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto DiffuseAmount() const;
        auto DiffuseAmount(float value) const;
        [[nodiscard]] auto HeightMapScale() const;
        auto HeightMapScale(float value) const;
        [[nodiscard]] auto LightColor() const;
        auto LightColor(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto HeightMapKernelSize() const;
        auto HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto HeightMapInterpolationMode() const;
        auto HeightMapInterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto LightColorHdr() const;
        auto LightColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IPointDiffuseEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IPointDiffuseEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IPointSpecularEffect
    {
        [[nodiscard]] auto LightPosition() const;
        auto LightPosition(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto SpecularExponent() const;
        auto SpecularExponent(float value) const;
        [[nodiscard]] auto SpecularAmount() const;
        auto SpecularAmount(float value) const;
        [[nodiscard]] auto HeightMapScale() const;
        auto HeightMapScale(float value) const;
        [[nodiscard]] auto LightColor() const;
        auto LightColor(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto HeightMapKernelSize() const;
        auto HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto HeightMapInterpolationMode() const;
        auto HeightMapInterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto LightColorHdr() const;
        auto LightColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IPointSpecularEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IPointSpecularEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IPosterizeEffect
    {
        [[nodiscard]] auto RedValueCount() const;
        auto RedValueCount(int32_t value) const;
        [[nodiscard]] auto GreenValueCount() const;
        auto GreenValueCount(int32_t value) const;
        [[nodiscard]] auto BlueValueCount() const;
        auto BlueValueCount(int32_t value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IPosterizeEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IPosterizeEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IPremultiplyEffect
    {
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IPremultiplyEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IPremultiplyEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IRgbToHueEffect
    {
        [[nodiscard]] auto OutputColorSpace() const;
        auto OutputColorSpace(winrt::Microsoft::Graphics::Canvas::Effects::EffectHueColorSpace const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IRgbToHueEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IRgbToHueEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ISaturationEffect
    {
        [[nodiscard]] auto Saturation() const;
        auto Saturation(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ISaturationEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ISaturationEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IScaleEffect
    {
        [[nodiscard]] auto Scale() const;
        auto Scale(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto CenterPoint() const;
        auto CenterPoint(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto InterpolationMode() const;
        auto InterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto BorderMode() const;
        auto BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        [[nodiscard]] auto Sharpness() const;
        auto Sharpness(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IScaleEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IScaleEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ISepiaEffect
    {
        [[nodiscard]] auto Intensity() const;
        auto Intensity(float value) const;
        [[nodiscard]] auto AlphaMode() const;
        auto AlphaMode(winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ISepiaEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ISepiaEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IShadowEffect
    {
        [[nodiscard]] auto BlurAmount() const;
        auto BlurAmount(float value) const;
        [[nodiscard]] auto ShadowColor() const;
        auto ShadowColor(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto Optimization() const;
        auto Optimization(winrt::Microsoft::Graphics::Canvas::Effects::EffectOptimization const& value) const;
        [[nodiscard]] auto ShadowColorHdr() const;
        auto ShadowColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IShadowEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IShadowEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ISharpenEffect
    {
        [[nodiscard]] auto Amount() const;
        auto Amount(float value) const;
        [[nodiscard]] auto Threshold() const;
        auto Threshold(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ISharpenEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ISharpenEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ISpotDiffuseEffect
    {
        [[nodiscard]] auto LightPosition() const;
        auto LightPosition(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto LightTarget() const;
        auto LightTarget(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto Focus() const;
        auto Focus(float value) const;
        [[nodiscard]] auto LimitingConeAngle() const;
        auto LimitingConeAngle(float value) const;
        [[nodiscard]] auto DiffuseAmount() const;
        auto DiffuseAmount(float value) const;
        [[nodiscard]] auto HeightMapScale() const;
        auto HeightMapScale(float value) const;
        [[nodiscard]] auto LightColor() const;
        auto LightColor(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto HeightMapKernelSize() const;
        auto HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto HeightMapInterpolationMode() const;
        auto HeightMapInterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto LightColorHdr() const;
        auto LightColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ISpotDiffuseEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ISpotDiffuseEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ISpotSpecularEffect
    {
        [[nodiscard]] auto LightPosition() const;
        auto LightPosition(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto LightTarget() const;
        auto LightTarget(winrt::Windows::Foundation::Numerics::float3 const& value) const;
        [[nodiscard]] auto Focus() const;
        auto Focus(float value) const;
        [[nodiscard]] auto LimitingConeAngle() const;
        auto LimitingConeAngle(float value) const;
        [[nodiscard]] auto SpecularExponent() const;
        auto SpecularExponent(float value) const;
        [[nodiscard]] auto SpecularAmount() const;
        auto SpecularAmount(float value) const;
        [[nodiscard]] auto HeightMapScale() const;
        auto HeightMapScale(float value) const;
        [[nodiscard]] auto LightColor() const;
        auto LightColor(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto HeightMapKernelSize() const;
        auto HeightMapKernelSize(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto HeightMapInterpolationMode() const;
        auto HeightMapInterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto LightColorHdr() const;
        auto LightColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ISpotSpecularEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ISpotSpecularEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IStraightenEffect
    {
        [[nodiscard]] auto Angle() const;
        auto Angle(float value) const;
        [[nodiscard]] auto MaintainSize() const;
        auto MaintainSize(bool value) const;
        [[nodiscard]] auto InterpolationMode() const;
        auto InterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IStraightenEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IStraightenEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ITableTransfer3DEffect
    {
        [[nodiscard]] auto Table() const;
        auto Table(winrt::Microsoft::Graphics::Canvas::Effects::EffectTransferTable3D const& value) const;
        [[nodiscard]] auto AlphaMode() const;
        auto AlphaMode(winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ITableTransfer3DEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ITableTransfer3DEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ITableTransferEffect
    {
        [[nodiscard]] auto RedTable() const;
        auto RedTable(array_view<float const> valueElements) const;
        [[nodiscard]] auto RedDisable() const;
        auto RedDisable(bool value) const;
        [[nodiscard]] auto GreenTable() const;
        auto GreenTable(array_view<float const> valueElements) const;
        [[nodiscard]] auto GreenDisable() const;
        auto GreenDisable(bool value) const;
        [[nodiscard]] auto BlueTable() const;
        auto BlueTable(array_view<float const> valueElements) const;
        [[nodiscard]] auto BlueDisable() const;
        auto BlueDisable(bool value) const;
        [[nodiscard]] auto AlphaTable() const;
        auto AlphaTable(array_view<float const> valueElements) const;
        [[nodiscard]] auto AlphaDisable() const;
        auto AlphaDisable(bool value) const;
        [[nodiscard]] auto ClampOutput() const;
        auto ClampOutput(bool value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ITableTransferEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ITableTransferEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ITemperatureAndTintEffect
    {
        [[nodiscard]] auto Temperature() const;
        auto Temperature(float value) const;
        [[nodiscard]] auto Tint() const;
        auto Tint(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ITemperatureAndTintEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ITemperatureAndTintEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ITileEffect
    {
        [[nodiscard]] auto SourceRectangle() const;
        auto SourceRectangle(winrt::Windows::Foundation::Rect const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ITileEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ITileEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ITintEffect
    {
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto ClampOutput() const;
        auto ClampOutput(bool value) const;
        [[nodiscard]] auto ColorHdr() const;
        auto ColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ITintEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ITintEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ITintEffectStatics
    {
        [[nodiscard]] auto IsSupported() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ITintEffectStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ITintEffectStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ITransform2DEffect
    {
        [[nodiscard]] auto InterpolationMode() const;
        auto InterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto BorderMode() const;
        auto BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        [[nodiscard]] auto TransformMatrix() const;
        auto TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2 const& value) const;
        [[nodiscard]] auto Sharpness() const;
        auto Sharpness(float value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ITransform2DEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ITransform2DEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ITransform3DEffect
    {
        [[nodiscard]] auto InterpolationMode() const;
        auto InterpolationMode(winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& value) const;
        [[nodiscard]] auto BorderMode() const;
        auto BorderMode(winrt::Microsoft::Graphics::Canvas::Effects::EffectBorderMode const& value) const;
        [[nodiscard]] auto TransformMatrix() const;
        auto TransformMatrix(winrt::Windows::Foundation::Numerics::float4x4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ITransform3DEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ITransform3DEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_ITurbulenceEffect
    {
        [[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 Frequency() const;
        auto Frequency(winrt::Windows::Foundation::Numerics::float2 const& value) const;
        [[nodiscard]] auto Octaves() const;
        auto Octaves(int32_t value) const;
        [[nodiscard]] auto Seed() const;
        auto Seed(int32_t value) const;
        [[nodiscard]] auto Noise() const;
        auto Noise(winrt::Microsoft::Graphics::Canvas::Effects::TurbulenceEffectNoise const& value) const;
        [[nodiscard]] auto Tileable() const;
        auto Tileable(bool value) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::ITurbulenceEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_ITurbulenceEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IUnPremultiplyEffect
    {
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IUnPremultiplyEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IUnPremultiplyEffect<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Effects_IVignetteEffect
    {
        [[nodiscard]] auto Color() const;
        auto Color(winrt::Windows::UI::Color const& value) const;
        [[nodiscard]] auto Amount() const;
        auto Amount(float value) const;
        [[nodiscard]] auto Curve() const;
        auto Curve(float value) const;
        [[nodiscard]] auto ColorHdr() const;
        auto ColorHdr(winrt::Windows::Foundation::Numerics::float4 const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Graphics::Effects::IGraphicsEffectSource const& source) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Effects::IVignetteEffect>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Effects_IVignetteEffect<D>;
    };
    struct struct_Microsoft_Graphics_Canvas_Effects_ColorManagementSimpleProfile
    {
        winrt::Windows::Foundation::Numerics::float2 RedPrimary;
        winrt::Windows::Foundation::Numerics::float2 GreenPrimary;
        winrt::Windows::Foundation::Numerics::float2 BluePrimary;
        winrt::Windows::Foundation::Numerics::float2 WhitePointXZ;
        int32_t Gamma;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Effects::ColorManagementSimpleProfile>
    {
        using type = struct_Microsoft_Graphics_Canvas_Effects_ColorManagementSimpleProfile;
    };
    struct struct_Microsoft_Graphics_Canvas_Effects_Matrix5x4
    {
        float M11;
        float M12;
        float M13;
        float M14;
        float M21;
        float M22;
        float M23;
        float M24;
        float M31;
        float M32;
        float M33;
        float M34;
        float M41;
        float M42;
        float M43;
        float M44;
        float M51;
        float M52;
        float M53;
        float M54;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Effects::Matrix5x4>
    {
        using type = struct_Microsoft_Graphics_Canvas_Effects_Matrix5x4;
    };
}
#endif
