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

#pragma once
#ifndef WINRT_Microsoft_Graphics_Canvas_0_H
#define WINRT_Microsoft_Graphics_Canvas_0_H
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas::Brushes
{
    struct ICanvasBrush;
}
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas::Effects
{
    enum class EffectChannelSelect : int32_t;
}
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas::Geometry
{
    struct CanvasCachedGeometry;
    struct CanvasGeometry;
    struct CanvasGradientMesh;
    struct CanvasStrokeStyle;
}
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas::Svg
{
    struct CanvasSvgDocument;
}
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas::Text
{
    struct CanvasFontFace;
    struct CanvasGlyph;
    enum class CanvasTextAntialiasing : int32_t;
    struct CanvasTextFormat;
    struct CanvasTextLayout;
    enum class CanvasTextMeasuringMode : int32_t;
    struct CanvasTextRenderingParameters;
}
WINRT_EXPORT namespace winrt::Microsoft::UI
{
    struct WindowId;
}
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct EventRegistrationToken;
    struct IAsyncAction;
    template <typename T> struct WINRT_IMPL_EMPTY_BASES IReference;
    struct Rect;
    struct Size;
    template <typename TSender, typename TResult> struct WINRT_IMPL_EMPTY_BASES TypedEventHandler;
    struct Uri;
}
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::DirectX::Direct3D11
{
    struct IDirect3DDevice;
    struct IDirect3DSurface;
}
WINRT_EXPORT namespace winrt::Windows::Graphics::Imaging
{
    struct BitmapSize;
    struct SoftwareBitmap;
}
WINRT_EXPORT namespace winrt::Windows::Storage::Streams
{
    struct IBuffer;
    struct IRandomAccessStream;
}
WINRT_EXPORT namespace winrt::Windows::UI
{
    struct Color;
}
WINRT_EXPORT namespace winrt::Windows::UI::Core
{
    struct CoreWindow;
}
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas
{
    enum class CanvasAlphaMode : int32_t
    {
        Premultiplied = 0,
        Straight = 1,
        Ignore = 2,
    };
    enum class CanvasAntialiasing : int32_t
    {
        Antialiased = 0,
        Aliased = 1,
    };
    enum class CanvasBitmapFileFormat : int32_t
    {
        Auto = 0,
        Bmp = 1,
        Png = 2,
        Jpeg = 3,
        Tiff = 4,
        Gif = 5,
        JpegXR = 6,
    };
    enum class CanvasBlend : int32_t
    {
        SourceOver = 0,
        Copy = 1,
        Min = 2,
        Add = 3,
    };
    enum class CanvasBufferPrecision : int32_t
    {
        Precision8UIntNormalized = 0,
        Precision8UIntNormalizedSrgb = 1,
        Precision16UIntNormalized = 2,
        Precision16Float = 3,
        Precision32Float = 4,
    };
    enum class CanvasColorSpace : int32_t
    {
        Custom = 0,
        Srgb = 1,
        ScRgb = 2,
    };
    enum class CanvasComposite : int32_t
    {
        SourceOver = 0,
        DestinationOver = 1,
        SourceIn = 2,
        DestinationIn = 3,
        SourceOut = 4,
        DestinationOut = 5,
        SourceAtop = 6,
        DestinationAtop = 7,
        Xor = 8,
        Add = 9,
        Copy = 10,
        BoundedCopy = 11,
        MaskInvert = 12,
    };
    enum class CanvasDebugLevel : int32_t
    {
        None = 0,
        Error = 1,
        Warning = 2,
        Information = 3,
    };
    enum class CanvasDpiRounding : int32_t
    {
        Floor = 0,
        Round = 1,
        Ceiling = 2,
    };
    enum class CanvasEdgeBehavior : int32_t
    {
        Clamp = 0,
        Wrap = 1,
        Mirror = 2,
    };
    enum class CanvasImageInterpolation : int32_t
    {
        NearestNeighbor = 0,
        Linear = 1,
        Cubic = 2,
        MultiSampleLinear = 3,
        Anisotropic = 4,
        HighQualityCubic = 5,
    };
    enum class CanvasLayerOptions : uint32_t
    {
        None = 0,
        InitializeFromBackground = 0x1,
        IgnoreAlpha = 0x2,
    };
    enum class CanvasSpriteFlip : uint32_t
    {
        None = 0,
        Horizontal = 0x1,
        Vertical = 0x2,
        Both = 0x3,
    };
    enum class CanvasSpriteOptions : uint32_t
    {
        None = 0,
        ClampToSourceRect = 0x1,
    };
    enum class CanvasSpriteSortMode : int32_t
    {
        None = 0,
        Bitmap = 1,
    };
    enum class CanvasSwapChainRotation : int32_t
    {
        None = 0,
        Rotate90 = 1,
        Rotate180 = 2,
        Rotate270 = 3,
    };
    enum class CanvasUnits : int32_t
    {
        Dips = 0,
        Pixels = 1,
    };
    enum class CanvasVirtualBitmapOptions : int32_t
    {
        None = 0,
        ReleaseSource = 1,
        CacheOnDemand = 2,
    };
    struct ICanvasActiveLayer;
    struct ICanvasBitmap;
    struct ICanvasBitmapFactory;
    struct ICanvasBitmapStatics;
    struct ICanvasCommandList;
    struct ICanvasCommandListFactory;
    struct ICanvasDevice;
    struct ICanvasDeviceFactory;
    struct ICanvasDeviceStatics;
    struct ICanvasDrawingSession;
    struct ICanvasImage;
    struct ICanvasImageStatics;
    struct ICanvasLock;
    struct ICanvasRenderTarget;
    struct ICanvasRenderTargetFactory;
    struct ICanvasRenderTargetStatics;
    struct ICanvasResourceCreator;
    struct ICanvasResourceCreatorWithDpi;
    struct ICanvasSpriteBatch;
    struct ICanvasSpriteBatchStatics;
    struct ICanvasSwapChain;
    struct ICanvasSwapChainFactory;
    struct ICanvasSwapChainStatics;
    struct ICanvasVirtualBitmap;
    struct ICanvasVirtualBitmapStatics;
    struct CanvasActiveLayer;
    struct CanvasBitmap;
    struct CanvasCommandList;
    struct CanvasDevice;
    struct CanvasDrawingSession;
    struct CanvasImage;
    struct CanvasLock;
    struct CanvasRenderTarget;
    struct CanvasSpriteBatch;
    struct CanvasSwapChain;
    struct CanvasVirtualBitmap;
}
namespace winrt::impl
{
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasActiveLayer>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasBitmap>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasCommandList>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasCommandListFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasDevice>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasDrawingSession>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasImage>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasImageStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasLock>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTarget>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatch>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatchStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChain>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmap>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmapStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasActiveLayer>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasBitmap>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasCommandList>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasDevice>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasDrawingSession>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasImage>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasLock>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasRenderTarget>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasSpriteBatch>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasSwapChain>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmap>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasAntialiasing>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasBitmapFileFormat>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasBlend>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasBufferPrecision>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasColorSpace>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasComposite>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasDebugLevel>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasDpiRounding>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasEdgeBehavior>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasLayerOptions>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasSpriteFlip>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasSpriteOptions>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasSpriteSortMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasSwapChainRotation>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasUnits>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions>{ using type = enum_category; };
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasActiveLayer> = L"Microsoft.Graphics.Canvas.CanvasActiveLayer";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasBitmap> = L"Microsoft.Graphics.Canvas.CanvasBitmap";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasCommandList> = L"Microsoft.Graphics.Canvas.CanvasCommandList";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasDevice> = L"Microsoft.Graphics.Canvas.CanvasDevice";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasDrawingSession> = L"Microsoft.Graphics.Canvas.CanvasDrawingSession";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasImage> = L"Microsoft.Graphics.Canvas.CanvasImage";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasLock> = L"Microsoft.Graphics.Canvas.CanvasLock";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasRenderTarget> = L"Microsoft.Graphics.Canvas.CanvasRenderTarget";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasSpriteBatch> = L"Microsoft.Graphics.Canvas.CanvasSpriteBatch";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasSwapChain> = L"Microsoft.Graphics.Canvas.CanvasSwapChain";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmap> = L"Microsoft.Graphics.Canvas.CanvasVirtualBitmap";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode> = L"Microsoft.Graphics.Canvas.CanvasAlphaMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasAntialiasing> = L"Microsoft.Graphics.Canvas.CanvasAntialiasing";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasBitmapFileFormat> = L"Microsoft.Graphics.Canvas.CanvasBitmapFileFormat";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasBlend> = L"Microsoft.Graphics.Canvas.CanvasBlend";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasBufferPrecision> = L"Microsoft.Graphics.Canvas.CanvasBufferPrecision";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasColorSpace> = L"Microsoft.Graphics.Canvas.CanvasColorSpace";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasComposite> = L"Microsoft.Graphics.Canvas.CanvasComposite";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasDebugLevel> = L"Microsoft.Graphics.Canvas.CanvasDebugLevel";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasDpiRounding> = L"Microsoft.Graphics.Canvas.CanvasDpiRounding";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasEdgeBehavior> = L"Microsoft.Graphics.Canvas.CanvasEdgeBehavior";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation> = L"Microsoft.Graphics.Canvas.CanvasImageInterpolation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasLayerOptions> = L"Microsoft.Graphics.Canvas.CanvasLayerOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasSpriteFlip> = L"Microsoft.Graphics.Canvas.CanvasSpriteFlip";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasSpriteOptions> = L"Microsoft.Graphics.Canvas.CanvasSpriteOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasSpriteSortMode> = L"Microsoft.Graphics.Canvas.CanvasSpriteSortMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasSwapChainRotation> = L"Microsoft.Graphics.Canvas.CanvasSwapChainRotation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasUnits> = L"Microsoft.Graphics.Canvas.CanvasUnits";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions> = L"Microsoft.Graphics.Canvas.CanvasVirtualBitmapOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasActiveLayer> = L"Microsoft.Graphics.Canvas.ICanvasActiveLayer";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasBitmap> = L"Microsoft.Graphics.Canvas.ICanvasBitmap";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapFactory> = L"Microsoft.Graphics.Canvas.ICanvasBitmapFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapStatics> = L"Microsoft.Graphics.Canvas.ICanvasBitmapStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasCommandList> = L"Microsoft.Graphics.Canvas.ICanvasCommandList";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasCommandListFactory> = L"Microsoft.Graphics.Canvas.ICanvasCommandListFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasDevice> = L"Microsoft.Graphics.Canvas.ICanvasDevice";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceFactory> = L"Microsoft.Graphics.Canvas.ICanvasDeviceFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceStatics> = L"Microsoft.Graphics.Canvas.ICanvasDeviceStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasDrawingSession> = L"Microsoft.Graphics.Canvas.ICanvasDrawingSession";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasImage> = L"Microsoft.Graphics.Canvas.ICanvasImage";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasImageStatics> = L"Microsoft.Graphics.Canvas.ICanvasImageStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasLock> = L"Microsoft.Graphics.Canvas.ICanvasLock";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTarget> = L"Microsoft.Graphics.Canvas.ICanvasRenderTarget";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetFactory> = L"Microsoft.Graphics.Canvas.ICanvasRenderTargetFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetStatics> = L"Microsoft.Graphics.Canvas.ICanvasRenderTargetStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator> = L"Microsoft.Graphics.Canvas.ICanvasResourceCreator";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi> = L"Microsoft.Graphics.Canvas.ICanvasResourceCreatorWithDpi";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatch> = L"Microsoft.Graphics.Canvas.ICanvasSpriteBatch";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatchStatics> = L"Microsoft.Graphics.Canvas.ICanvasSpriteBatchStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChain> = L"Microsoft.Graphics.Canvas.ICanvasSwapChain";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainFactory> = L"Microsoft.Graphics.Canvas.ICanvasSwapChainFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainStatics> = L"Microsoft.Graphics.Canvas.ICanvasSwapChainStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmap> = L"Microsoft.Graphics.Canvas.ICanvasVirtualBitmap";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmapStatics> = L"Microsoft.Graphics.Canvas.ICanvasVirtualBitmapStatics";
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasActiveLayer>{ 0x49ECFC58,0x5E1C,0x4EE3,{ 0x80,0x88,0x54,0x2F,0x94,0xE9,0x3C,0x60 } }; // 49ECFC58-5E1C-4EE3-8088-542F94E93C60
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasBitmap>{ 0xC57532ED,0x709E,0x4AC2,{ 0x86,0xBE,0xA1,0xEC,0x3A,0x7F,0xA8,0xFE } }; // C57532ED-709E-4AC2-86BE-A1EC3A7FA8FE
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapFactory>{ 0xF2D0EB0E,0x16F3,0x4BCF,{ 0xB1,0xD1,0x04,0x83,0x4A,0xB9,0x7D,0xE4 } }; // F2D0EB0E-16F3-4BCF-B1D1-04834AB97DE4
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapStatics>{ 0xC8948DEA,0xA41D,0x4CC2,{ 0xAF,0x9A,0xFD,0xDE,0x01,0xB6,0x06,0xDC } }; // C8948DEA-A41D-4CC2-AF9A-FDDE01B606DC
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasCommandList>{ 0xB71E73CF,0x2FE7,0x4D3A,{ 0xBB,0xB8,0x19,0xF0,0x16,0xF5,0xBE,0x1B } }; // B71E73CF-2FE7-4D3A-BBB8-19F016F5BE1B
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasCommandListFactory>{ 0xB3D44E68,0xD931,0x4B5B,{ 0xB9,0x57,0x08,0x88,0x98,0x0A,0x7D,0x50 } }; // B3D44E68-D931-4B5B-B957-0888980A7D50
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasDevice>{ 0xA27F0B5D,0xEC2C,0x4D4F,{ 0x94,0x8F,0x0A,0xA1,0xE9,0x5E,0x33,0xE6 } }; // A27F0B5D-EC2C-4D4F-948F-0AA1E95E33E6
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceFactory>{ 0xE2C2BF21,0x5418,0x43B9,{ 0xA2,0xDA,0x53,0x9E,0x28,0x7C,0x79,0x0F } }; // E2C2BF21-5418-43B9-A2DA-539E287C790F
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceStatics>{ 0x9B6E2B27,0xCD07,0x421A,{ 0x8F,0x69,0x0A,0xE8,0xA7,0x87,0xFE,0x8C } }; // 9B6E2B27-CD07-421A-8F69-0AE8A787FE8C
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasDrawingSession>{ 0xF60AFD09,0xE623,0x4BE0,{ 0xB7,0x50,0x57,0x8A,0xA9,0x20,0xB1,0xDB } }; // F60AFD09-E623-4BE0-B750-578AA920B1DB
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasImage>{ 0x794966D3,0x6A64,0x47E9,{ 0x8D,0xA8,0xB4,0x6A,0xAA,0x24,0xD5,0x3B } }; // 794966D3-6A64-47E9-8DA8-B46AAA24D53B
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasImageStatics>{ 0xC54EEA15,0x5A14,0x489A,{ 0x8F,0xA0,0x6E,0x84,0x54,0x1F,0x92,0x2D } }; // C54EEA15-5A14-489A-8FA0-6E84541F922D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasLock>{ 0x7A0E8498,0xFBA9,0x4FB0,{ 0xAA,0x8C,0x6A,0x48,0xB5,0xEE,0x3E,0x4F } }; // 7A0E8498-FBA9-4FB0-AA8C-6A48B5EE3E4F
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTarget>{ 0x2D4C7349,0x9A32,0x41B9,{ 0xB3,0xCC,0xCA,0xF1,0xB7,0xE1,0x09,0x9B } }; // 2D4C7349-9A32-41B9-B3CC-CAF1B7E1099B
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetFactory>{ 0x620DFDBB,0x9D08,0x406C,{ 0xBF,0xE6,0xD9,0xB8,0x1E,0x6D,0xF8,0xE7 } }; // 620DFDBB-9D08-406C-BFE6-D9B81E6DF8E7
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetStatics>{ 0xC7D1FE37,0xDD57,0x45D7,{ 0xBC,0xC1,0x15,0x62,0x5A,0x21,0xE8,0xD5 } }; // C7D1FE37-DD57-45D7-BCC1-15625A21E8D5
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator>{ 0x8F6D8AA8,0x492F,0x4BC6,{ 0xB3,0xD0,0xE7,0xF5,0xEA,0xE8,0x4B,0x11 } }; // 8F6D8AA8-492F-4BC6-B3D0-E7F5EAE84B11
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi>{ 0x1A75B512,0xE9FA,0x49E6,{ 0xA8,0x76,0x38,0xCA,0xE1,0x94,0x01,0x3E } }; // 1A75B512-E9FA-49E6-A876-38CAE194013E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatch>{ 0xA065DCE4,0xA7F2,0x4DF4,{ 0x84,0x05,0xEA,0x9E,0x3A,0x21,0x5B,0xF8 } }; // A065DCE4-A7F2-4DF4-8405-EA9E3A215BF8
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatchStatics>{ 0x851EB08D,0x9D01,0x4B57,{ 0x9E,0x94,0x24,0x11,0x31,0x51,0xB7,0x4B } }; // 851EB08D-9D01-4B57-9E94-24113151B74B
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChain>{ 0x882E3C3A,0x5725,0x409C,{ 0x9E,0x76,0xF8,0x0B,0x3B,0xAC,0xF1,0xB4 } }; // 882E3C3A-5725-409C-9E76-F80B3BACF1B4
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainFactory>{ 0x133C25CB,0xED3C,0x492B,{ 0xBF,0xFE,0x75,0x09,0xB5,0x21,0x84,0x2B } }; // 133C25CB-ED3C-492B-BFFE-7509B521842B
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainStatics>{ 0x05376D8F,0x3E8D,0x4A82,{ 0x98,0x38,0x69,0x16,0x80,0xD3,0x2A,0x52 } }; // 05376D8F-3E8D-4A82-9838-691680D32A52
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmap>{ 0x707D8BB0,0x05F9,0x484C,{ 0x9E,0xE2,0x17,0x9E,0x06,0x81,0xC8,0xA7 } }; // 707D8BB0-05F9-484C-9EE2-179E0681C8A7
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmapStatics>{ 0xB2F1F8E9,0x0770,0x4DD4,{ 0x95,0x6D,0x78,0xD9,0x11,0x39,0x09,0x57 } }; // B2F1F8E9-0770-4DD4-956D-78D911390957
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasActiveLayer>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasActiveLayer; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasBitmap>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasBitmap; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasCommandList>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasCommandList; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasDevice>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasDevice; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasDrawingSession>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasDrawingSession; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasLock>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasLock; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasRenderTarget>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasRenderTarget; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasSpriteBatch>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatch; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasSwapChain>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasSwapChain; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmap>{ using type = winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmap; };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasActiveLayer>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasBitmap>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SizeInPixels(struct struct_Windows_Graphics_Imaging_BitmapSize*) noexcept = 0;
            virtual int32_t __stdcall get_Size(winrt::Windows::Foundation::Size*) noexcept = 0;
            virtual int32_t __stdcall get_Bounds(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall get_Format(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_AlphaMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall SaveToFileAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall SaveToFileWithBitmapFileFormatAsync(void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall SaveToFileWithBitmapFileFormatAndQualityAsync(void*, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall SaveToStreamAsync(void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall SaveToStreamWithQualityAsync(void*, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall GetPixelBytes(uint32_t* __valueElementsSize, uint8_t**) noexcept = 0;
            virtual int32_t __stdcall GetPixelBytesWithSubrectangle(int32_t, int32_t, int32_t, int32_t, uint32_t* __valueElementsSize, uint8_t**) noexcept = 0;
            virtual int32_t __stdcall GetPixelBytesWithBuffer(void*) noexcept = 0;
            virtual int32_t __stdcall GetPixelBytesWithBufferAndSubrectangle(void*, int32_t, int32_t, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall GetPixelColors(uint32_t* __valueElementsSize, struct struct_Windows_UI_Color**) noexcept = 0;
            virtual int32_t __stdcall GetPixelColorsWithSubrectangle(int32_t, int32_t, int32_t, int32_t, uint32_t* __valueElementsSize, struct struct_Windows_UI_Color**) noexcept = 0;
            virtual int32_t __stdcall SetPixelBytes(uint32_t, uint8_t*) noexcept = 0;
            virtual int32_t __stdcall SetPixelBytesWithSubrectangle(uint32_t, uint8_t*, int32_t, int32_t, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall SetPixelBytesWithBuffer(void*) noexcept = 0;
            virtual int32_t __stdcall SetPixelBytesWithBufferAndSubrectangle(void*, int32_t, int32_t, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall SetPixelColors(uint32_t, struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall SetPixelColorsWithSubrectangle(uint32_t, struct struct_Windows_UI_Color*, int32_t, int32_t, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall CopyPixelsFromBitmap(void*) noexcept = 0;
            virtual int32_t __stdcall CopyPixelsFromBitmapWithDestPoint(void*, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall CopyPixelsFromBitmapWithDestPointAndSourceRect(void*, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateFromDirect3D11Surface(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromDirect3D11SurfaceWithDpi(void*, void*, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromDirect3D11SurfaceWithDpiAndAlpha(void*, void*, float, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromBytes(void*, uint32_t, uint8_t*, int32_t, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromBytesWithDpi(void*, uint32_t, uint8_t*, int32_t, int32_t, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromBytesWithDpiAndAlpha(void*, uint32_t, uint8_t*, int32_t, int32_t, int32_t, float, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromBytesWithBuffer(void*, void*, int32_t, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromBytesWithBufferAndDpi(void*, void*, int32_t, int32_t, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromBytesWithBufferAndDpiAndAlpha(void*, void*, int32_t, int32_t, int32_t, float, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromColors(void*, uint32_t, struct struct_Windows_UI_Color*, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromColorsWithDpi(void*, uint32_t, struct struct_Windows_UI_Color*, int32_t, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromColorsWithDpiAndAlpha(void*, uint32_t, struct struct_Windows_UI_Color*, int32_t, int32_t, float, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromSoftwareBitmap(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromHstring(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromHstringWithDpi(void*, void*, float, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromHstringWithDpiAndAlpha(void*, void*, float, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromUri(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromUriWithDpi(void*, void*, float, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromUriWithDpiAndAlpha(void*, void*, float, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromStream(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromStreamWithDpi(void*, void*, float, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromStreamWithDpiAndAlpha(void*, void*, float, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasCommandList>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateDrawingSession(void**) noexcept = 0;
            virtual int32_t __stdcall get_Device(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasCommandListFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasDevice>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ForceSoftwareRenderer(bool*) noexcept = 0;
            virtual int32_t __stdcall get_MaximumBitmapSizeInPixels(int32_t*) noexcept = 0;
            virtual int32_t __stdcall IsPixelFormatSupported(int32_t, bool*) noexcept = 0;
            virtual int32_t __stdcall IsBufferPrecisionSupported(int32_t, bool*) noexcept = 0;
            virtual int32_t __stdcall get_MaximumCacheSize(uint64_t*) noexcept = 0;
            virtual int32_t __stdcall put_MaximumCacheSize(uint64_t) noexcept = 0;
            virtual int32_t __stdcall get_LowPriority(bool*) noexcept = 0;
            virtual int32_t __stdcall put_LowPriority(bool) noexcept = 0;
            virtual int32_t __stdcall add_DeviceLost(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_DeviceLost(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall IsDeviceLost(int32_t, bool*) noexcept = 0;
            virtual int32_t __stdcall RaiseDeviceLost() noexcept = 0;
            virtual int32_t __stdcall Lock(void**) noexcept = 0;
            virtual int32_t __stdcall IsDeviceLost2(bool*) noexcept = 0;
            virtual int32_t __stdcall GetDeviceLostReason(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateWithForceSoftwareRendererOption(bool, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateFromDirect3D11Device(void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetSharedDevice(void**) noexcept = 0;
            virtual int32_t __stdcall GetSharedDeviceWithForceSoftwareRenderer(bool, void**) noexcept = 0;
            virtual int32_t __stdcall put_DebugLevel(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_DebugLevel(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasDrawingSession>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Clear(struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall ClearHdr(winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall Flush() noexcept = 0;
            virtual int32_t __stdcall DrawImageAtOrigin(void*) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtOffset(void*, winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtCoords(void*, float, float) noexcept = 0;
            virtual int32_t __stdcall DrawImageToRect(void*, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtOffsetWithSourceRect(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtCoordsWithSourceRect(void*, float, float, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall DrawImageToRectWithSourceRect(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtOffsetWithSourceRectAndOpacity(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Rect, float) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtCoordsWithSourceRectAndOpacity(void*, float, float, winrt::Windows::Foundation::Rect, float) noexcept = 0;
            virtual int32_t __stdcall DrawImageToRectWithSourceRectAndOpacity(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Rect, float) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtOffsetWithSourceRectAndOpacityAndInterpolation(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Rect, float, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtCoordsWithSourceRectAndOpacityAndInterpolation(void*, float, float, winrt::Windows::Foundation::Rect, float, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawImageToRectWithSourceRectAndOpacityAndInterpolation(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Rect, float, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtOffsetWithSourceRectAndOpacityAndInterpolationAndComposite(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Rect, float, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtCoordsWithSourceRectAndOpacityAndInterpolationAndComposite(void*, float, float, winrt::Windows::Foundation::Rect, float, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawImageToRectWithSourceRectAndOpacityAndInterpolationAndComposite(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Rect, float, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtOffsetWithSourceRectAndOpacityAndInterpolationAndPerspective(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Rect, float, int32_t, winrt::Windows::Foundation::Numerics::float4x4) noexcept = 0;
            virtual int32_t __stdcall DrawImageAtCoordsWithSourceRectAndOpacityAndInterpolationAndPerspective(void*, float, float, winrt::Windows::Foundation::Rect, float, int32_t, winrt::Windows::Foundation::Numerics::float4x4) noexcept = 0;
            virtual int32_t __stdcall DrawImageToRectWithSourceRectAndOpacityAndInterpolationAndPerspective(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Rect, float, int32_t, winrt::Windows::Foundation::Numerics::float4x4) noexcept = 0;
            virtual int32_t __stdcall DrawLineWithBrush(winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, void*) noexcept = 0;
            virtual int32_t __stdcall DrawLineAtCoordsWithBrush(float, float, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawLineWithColor(winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawLineAtCoordsWithColor(float, float, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawLineWithBrushAndStrokeWidth(winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawLineAtCoordsWithBrushAndStrokeWidth(float, float, float, float, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawLineWithColorAndStrokeWidth(winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawLineAtCoordsWithColorAndStrokeWidth(float, float, float, float, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawLineWithBrushAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawLineAtCoordsWithBrushAndStrokeWidthAndStrokeStyle(float, float, float, float, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawLineWithColorAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawLineAtCoordsWithColorAndStrokeWidthAndStrokeStyle(float, float, float, float, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleWithBrush(winrt::Windows::Foundation::Rect, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleAtCoordsWithBrush(float, float, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleWithColor(winrt::Windows::Foundation::Rect, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleAtCoordsWithColor(float, float, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleWithBrushAndStrokeWidth(winrt::Windows::Foundation::Rect, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleAtCoordsWithBrushAndStrokeWidth(float, float, float, float, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleWithColorAndStrokeWidth(winrt::Windows::Foundation::Rect, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleAtCoordsWithColorAndStrokeWidth(float, float, float, float, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleWithBrushAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Rect, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleAtCoordsWithBrushAndStrokeWidthAndStrokeStyle(float, float, float, float, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleWithColorAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Rect, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRectangleAtCoordsWithColorAndStrokeWidthAndStrokeStyle(float, float, float, float, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillRectangleWithBrush(winrt::Windows::Foundation::Rect, void*) noexcept = 0;
            virtual int32_t __stdcall FillRectangleAtCoordsWithBrush(float, float, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillRectangleWithColor(winrt::Windows::Foundation::Rect, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall FillRectangleAtCoordsWithColor(float, float, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall FillRectangleWithBrushAndOpacityBrush(winrt::Windows::Foundation::Rect, void*, void*) noexcept = 0;
            virtual int32_t __stdcall FillRectangleAtCoordsWithBrushAndOpacityBrush(float, float, float, float, void*, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleWithBrush(winrt::Windows::Foundation::Rect, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleAtCoordsWithBrush(float, float, float, float, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleWithColor(winrt::Windows::Foundation::Rect, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleAtCoordsWithColor(float, float, float, float, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleWithBrushAndStrokeWidth(winrt::Windows::Foundation::Rect, float, float, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleAtCoordsWithBrushAndStrokeWidth(float, float, float, float, float, float, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleWithColorAndStrokeWidth(winrt::Windows::Foundation::Rect, float, float, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleAtCoordsWithColorAndStrokeWidth(float, float, float, float, float, float, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleWithBrushAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Rect, float, float, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleAtCoordsWithBrushAndStrokeWidthAndStrokeStyle(float, float, float, float, float, float, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleWithColorAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Rect, float, float, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawRoundedRectangleAtCoordsWithColorAndStrokeWidthAndStrokeStyle(float, float, float, float, float, float, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillRoundedRectangleWithBrush(winrt::Windows::Foundation::Rect, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillRoundedRectangleAtCoordsWithBrush(float, float, float, float, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillRoundedRectangleWithColor(winrt::Windows::Foundation::Rect, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall FillRoundedRectangleAtCoordsWithColor(float, float, float, float, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseWithBrush(winrt::Windows::Foundation::Numerics::float2, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseAtCoordsWithBrush(float, float, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseWithColor(winrt::Windows::Foundation::Numerics::float2, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseAtCoordsWithColor(float, float, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseWithBrushAndStrokeWidth(winrt::Windows::Foundation::Numerics::float2, float, float, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseAtCoordsWithBrushAndStrokeWidth(float, float, float, float, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseWithColorAndStrokeWidth(winrt::Windows::Foundation::Numerics::float2, float, float, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseAtCoordsWithColorAndStrokeWidth(float, float, float, float, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseWithBrushAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Numerics::float2, float, float, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseAtCoordsWithBrushAndStrokeWidthAndStrokeStyle(float, float, float, float, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseWithColorAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Numerics::float2, float, float, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawEllipseAtCoordsWithColorAndStrokeWidthAndStrokeStyle(float, float, float, float, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillEllipseWithBrush(winrt::Windows::Foundation::Numerics::float2, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillEllipseAtCoordsWithBrush(float, float, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillEllipseWithColor(winrt::Windows::Foundation::Numerics::float2, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall FillEllipseAtCoordsWithColor(float, float, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawCircleWithBrush(winrt::Windows::Foundation::Numerics::float2, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawCircleAtCoordsWithBrush(float, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawCircleWithColor(winrt::Windows::Foundation::Numerics::float2, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawCircleAtCoordsWithColor(float, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawCircleWithBrushAndStrokeWidth(winrt::Windows::Foundation::Numerics::float2, float, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawCircleAtCoordsWithBrushAndStrokeWidth(float, float, float, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawCircleWithColorAndStrokeWidth(winrt::Windows::Foundation::Numerics::float2, float, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawCircleAtCoordsWithColorAndStrokeWidth(float, float, float, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawCircleWithBrushAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Numerics::float2, float, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawCircleAtCoordsWithBrushAndStrokeWidthAndStrokeStyle(float, float, float, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawCircleWithColorAndStrokeWidthAndStrokeStyle(winrt::Windows::Foundation::Numerics::float2, float, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawCircleAtCoordsWithColorAndStrokeWidthAndStrokeStyle(float, float, float, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillCircleWithBrush(winrt::Windows::Foundation::Numerics::float2, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillCircleAtCoordsWithBrush(float, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillCircleWithColor(winrt::Windows::Foundation::Numerics::float2, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall FillCircleAtCoordsWithColor(float, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtPointWithColor(void*, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtPointCoordsWithColor(void*, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtPointWithBrushAndFormat(void*, winrt::Windows::Foundation::Numerics::float2, void*, void*) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtRectWithBrushAndFormat(void*, winrt::Windows::Foundation::Rect, void*, void*) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtPointCoordsWithBrushAndFormat(void*, float, float, void*, void*) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtRectCoordsWithBrushAndFormat(void*, float, float, float, float, void*, void*) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtPointWithColorAndFormat(void*, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color, void*) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtRectWithColorAndFormat(void*, winrt::Windows::Foundation::Rect, struct struct_Windows_UI_Color, void*) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtPointCoordsWithColorAndFormat(void*, float, float, struct struct_Windows_UI_Color, void*) noexcept = 0;
            virtual int32_t __stdcall DrawTextAtRectCoordsWithColorAndFormat(void*, float, float, float, float, struct struct_Windows_UI_Color, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryWithBrush(void*, winrt::Windows::Foundation::Numerics::float2, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryWithColor(void*, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtCoordsWithBrush(void*, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtCoordsWithColor(void*, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtOriginWithBrush(void*, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtOriginWithColor(void*, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryWithBrushAndStrokeWidth(void*, winrt::Windows::Foundation::Numerics::float2, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryWithColorAndStrokeWidth(void*, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtCoordsWithBrushAndStrokeWidth(void*, float, float, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtCoordsWithColorAndStrokeWidth(void*, float, float, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtOriginWithBrushAndStrokeWidth(void*, void*, float) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtOriginWithColorAndStrokeWidth(void*, struct struct_Windows_UI_Color, float) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryWithBrushAndStrokeWidthAndStrokeStyle(void*, winrt::Windows::Foundation::Numerics::float2, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryWithColorAndStrokeWidthAndStrokeStyle(void*, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtCoordsWithBrushAndStrokeWidthAndStrokeStyle(void*, float, float, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtCoordsWithColorAndStrokeWidthAndStrokeStyle(void*, float, float, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtOriginWithBrushAndStrokeWidthAndStrokeStyle(void*, void*, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGeometryAtOriginWithColorAndStrokeWidthAndStrokeStyle(void*, struct struct_Windows_UI_Color, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillGeometryWithBrush(void*, winrt::Windows::Foundation::Numerics::float2, void*) noexcept = 0;
            virtual int32_t __stdcall FillGeometryWithBrushAndOpacityBrush(void*, winrt::Windows::Foundation::Numerics::float2, void*, void*) noexcept = 0;
            virtual int32_t __stdcall FillGeometryWithColor(void*, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall FillGeometryAtCoordsWithBrush(void*, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall FillGeometryAtCoordsWithBrushAndOpacityBrush(void*, float, float, void*, void*) noexcept = 0;
            virtual int32_t __stdcall FillGeometryAtCoordsWithColor(void*, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall FillGeometryAtOriginWithBrush(void*, void*) noexcept = 0;
            virtual int32_t __stdcall FillGeometryAtOriginWithBrushAndOpacityBrush(void*, void*, void*) noexcept = 0;
            virtual int32_t __stdcall FillGeometryAtOriginWithColor(void*, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawCachedGeometryWithBrush(void*, winrt::Windows::Foundation::Numerics::float2, void*) noexcept = 0;
            virtual int32_t __stdcall DrawCachedGeometryWithColor(void*, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawCachedGeometryAtCoordsWithBrush(void*, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawCachedGeometryAtCoordsWithColor(void*, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawCachedGeometryAtOriginWithBrush(void*, void*) noexcept = 0;
            virtual int32_t __stdcall DrawCachedGeometryAtOriginWithColor(void*, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawTextLayoutWithBrush(void*, winrt::Windows::Foundation::Numerics::float2, void*) noexcept = 0;
            virtual int32_t __stdcall DrawTextLayoutAtCoordsWithBrush(void*, float, float, void*) noexcept = 0;
            virtual int32_t __stdcall DrawTextLayoutWithColor(void*, winrt::Windows::Foundation::Numerics::float2, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawTextLayoutAtCoordsWithColor(void*, float, float, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall DrawGradientMeshAtOrigin(void*) noexcept = 0;
            virtual int32_t __stdcall DrawGradientMesh(void*, winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall DrawGradientMeshAtCoords(void*, float, float) noexcept = 0;
            virtual int32_t __stdcall DrawSvgAtOrigin(void*, winrt::Windows::Foundation::Size) noexcept = 0;
            virtual int32_t __stdcall DrawSvgAtPoint(void*, winrt::Windows::Foundation::Size, winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall DrawSvgAtCoords(void*, winrt::Windows::Foundation::Size, float, float) noexcept = 0;
            virtual int32_t __stdcall get_Antialiasing(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Antialiasing(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Blend(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Blend(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_TextAntialiasing(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_TextAntialiasing(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_TextRenderingParameters(void**) noexcept = 0;
            virtual int32_t __stdcall put_TextRenderingParameters(void*) noexcept = 0;
            virtual int32_t __stdcall get_Transform(winrt::Windows::Foundation::Numerics::float3x2*) noexcept = 0;
            virtual int32_t __stdcall put_Transform(winrt::Windows::Foundation::Numerics::float3x2) noexcept = 0;
            virtual int32_t __stdcall get_Units(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Units(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_EffectBufferPrecision(void**) noexcept = 0;
            virtual int32_t __stdcall put_EffectBufferPrecision(void*) noexcept = 0;
            virtual int32_t __stdcall get_EffectTileSize(struct struct_Windows_Graphics_Imaging_BitmapSize*) noexcept = 0;
            virtual int32_t __stdcall put_EffectTileSize(struct struct_Windows_Graphics_Imaging_BitmapSize) noexcept = 0;
            virtual int32_t __stdcall CreateLayerWithOpacity(float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLayerWithOpacityBrush(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLayerWithOpacityAndClipRectangle(float, winrt::Windows::Foundation::Rect, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLayerWithOpacityBrushAndClipRectangle(void*, winrt::Windows::Foundation::Rect, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLayerWithOpacityAndClipGeometry(float, void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLayerWithOpacityBrushAndClipGeometry(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLayerWithOpacityAndClipGeometryAndTransform(float, void*, winrt::Windows::Foundation::Numerics::float3x2, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLayerWithOpacityBrushAndClipGeometryAndTransform(void*, void*, winrt::Windows::Foundation::Numerics::float3x2, void**) noexcept = 0;
            virtual int32_t __stdcall CreateLayerWithAllOptions(float, void*, winrt::Windows::Foundation::Rect, void*, winrt::Windows::Foundation::Numerics::float3x2, uint32_t, void**) noexcept = 0;
            virtual int32_t __stdcall DrawGlyphRun(winrt::Windows::Foundation::Numerics::float2, void*, float, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, bool, uint32_t, void*) noexcept = 0;
            virtual int32_t __stdcall DrawGlyphRunWithMeasuringMode(winrt::Windows::Foundation::Numerics::float2, void*, float, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, bool, uint32_t, void*, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawGlyphRunWithMeasuringModeAndDescription(winrt::Windows::Foundation::Numerics::float2, void*, float, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, bool, uint32_t, void*, int32_t, void*, void*, uint32_t, int32_t*, uint32_t) noexcept = 0;
            virtual int32_t __stdcall CreateSpriteBatch(void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpriteBatchWithSortMode(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpriteBatchWithSortModeAndInterpolation(int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateSpriteBatchWithSortModeAndInterpolationAndOptions(int32_t, int32_t, uint32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasImage>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetBounds(void*, winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall GetBoundsWithTransform(void*, winrt::Windows::Foundation::Numerics::float3x2, winrt::Windows::Foundation::Rect*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasImageStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall SaveAsync(void*, winrt::Windows::Foundation::Rect, float, void*, void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall SaveWithQualityAsync(void*, winrt::Windows::Foundation::Rect, float, void*, void*, int32_t, float, void**) noexcept = 0;
            virtual int32_t __stdcall SaveWithQualityAndBufferPrecisionAsync(void*, winrt::Windows::Foundation::Rect, float, void*, void*, int32_t, float, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall ComputeHistogram(void*, winrt::Windows::Foundation::Rect, void*, int32_t, int32_t, uint32_t* __valueElementsSize, float**) noexcept = 0;
            virtual int32_t __stdcall IsHistogramSupported(void*, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasLock>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTarget>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateDrawingSession(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateWithSize(void*, winrt::Windows::Foundation::Size, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithWidthAndHeight(void*, float, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithWidthAndHeightAndDpi(void*, float, float, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithWidthAndHeightAndDpiAndFormatAndAlpha(void*, float, float, float, int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateFromDirect3D11Surface(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromDirect3D11SurfaceWithDpi(void*, void*, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateFromDirect3D11SurfaceWithDpiAndAlpha(void*, void*, float, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Device(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Dpi(float*) noexcept = 0;
            virtual int32_t __stdcall ConvertPixelsToDips(int32_t, float*) noexcept = 0;
            virtual int32_t __stdcall ConvertDipsToPixels(float, int32_t, int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatch>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall DrawToRect(void*, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall DrawAtOffset(void*, winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall DrawWithTransform(void*, winrt::Windows::Foundation::Numerics::float3x2) noexcept = 0;
            virtual int32_t __stdcall DrawToRectWithTint(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall DrawAtOffsetWithTint(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall DrawWithTransformAndTint(void*, winrt::Windows::Foundation::Numerics::float3x2, winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall DrawToRectWithTintAndFlip(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Numerics::float4, uint32_t) noexcept = 0;
            virtual int32_t __stdcall DrawWithTransformAndTintAndFlip(void*, winrt::Windows::Foundation::Numerics::float3x2, winrt::Windows::Foundation::Numerics::float4, uint32_t) noexcept = 0;
            virtual int32_t __stdcall DrawAtOffsetWithTintAndTransform(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float4, winrt::Windows::Foundation::Numerics::float2, float, winrt::Windows::Foundation::Numerics::float2, uint32_t) noexcept = 0;
            virtual int32_t __stdcall DrawFromSpriteSheetToRect(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall DrawFromSpriteSheetAtOffset(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall DrawFromSpriteSheetWithTransform(void*, winrt::Windows::Foundation::Numerics::float3x2, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall DrawFromSpriteSheetToRectWithTint(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall DrawFromSpriteSheetAtOffsetWithTint(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall DrawFromSpriteSheetWithTransformAndTint(void*, winrt::Windows::Foundation::Numerics::float3x2, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Numerics::float4) noexcept = 0;
            virtual int32_t __stdcall DrawFromSpriteSheetToRectWithTintAndFlip(void*, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Numerics::float4, uint32_t) noexcept = 0;
            virtual int32_t __stdcall DrawFromSpriteSheetWithTransformAndTintAndFlip(void*, winrt::Windows::Foundation::Numerics::float3x2, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Numerics::float4, uint32_t) noexcept = 0;
            virtual int32_t __stdcall DrawFromSpriteSheetAtOffsetWithTintAndTransform(void*, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Rect, winrt::Windows::Foundation::Numerics::float4, winrt::Windows::Foundation::Numerics::float2, float, winrt::Windows::Foundation::Numerics::float2, uint32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatchStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall IsSupported(void*, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChain>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Present() noexcept = 0;
            virtual int32_t __stdcall PresentWithSyncInterval(int32_t) noexcept = 0;
            virtual int32_t __stdcall ResizeBuffersWithSize(winrt::Windows::Foundation::Size) noexcept = 0;
            virtual int32_t __stdcall ResizeBuffersWithWidthAndHeight(float, float) noexcept = 0;
            virtual int32_t __stdcall ResizeBuffersWithWidthAndHeightAndDpi(float, float, float) noexcept = 0;
            virtual int32_t __stdcall ResizeBuffersWithAllOptions(float, float, float, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Size(winrt::Windows::Foundation::Size*) noexcept = 0;
            virtual int32_t __stdcall get_SizeInPixels(struct struct_Windows_Graphics_Imaging_BitmapSize*) noexcept = 0;
            virtual int32_t __stdcall get_Format(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_BufferCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_AlphaMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Rotation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Rotation(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_SourceSize(winrt::Windows::Foundation::Size*) noexcept = 0;
            virtual int32_t __stdcall put_SourceSize(winrt::Windows::Foundation::Size) 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 CreateDrawingSession(struct struct_Windows_UI_Color, void**) noexcept = 0;
            virtual int32_t __stdcall WaitForVerticalBlank() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateWithSize(void*, winrt::Windows::Foundation::Size, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithWidthAndHeight(void*, float, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithWidthAndHeightAndDpi(void*, float, float, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithAllOptions(void*, float, float, float, int32_t, int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateForCoreWindowWithDpi(void*, void*, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateForCoreWindowWithAllOptions(void*, void*, float, float, float, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateForWindowIdWithDpi(void*, struct struct_Microsoft_UI_WindowId, float, float, float, void**) noexcept = 0;
            virtual int32_t __stdcall CreateForWindowIdWithAllOptions(void*, struct struct_Microsoft_UI_WindowId, float, float, float, int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmap>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Device(void**) noexcept = 0;
            virtual int32_t __stdcall get_IsCachedOnDemand(bool*) noexcept = 0;
            virtual int32_t __stdcall get_SizeInPixels(struct struct_Windows_Graphics_Imaging_BitmapSize*) noexcept = 0;
            virtual int32_t __stdcall get_Size(winrt::Windows::Foundation::Size*) noexcept = 0;
            virtual int32_t __stdcall get_Bounds(winrt::Windows::Foundation::Rect*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmapStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall LoadAsyncFromFileName(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromFileNameWithOptions(void*, void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromFileNameWithOptionsAndAlpha(void*, void*, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromUri(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromUriWithOptions(void*, void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromUriWithOptionsAndAlpha(void*, void*, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromStream(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromStreamWithOptions(void*, void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall LoadAsyncFromStreamWithOptionsAndAlpha(void*, void*, int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasActiveLayer
    {
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasActiveLayer>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasActiveLayer<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasBitmap
    {
        [[nodiscard]] auto SizeInPixels() const;
        [[nodiscard]] auto Size() const;
        [[nodiscard]] auto Bounds() const;
        [[nodiscard]] auto Format() const;
        [[nodiscard]] auto AlphaMode() const;
        auto SaveAsync(param::hstring const& fileName) const;
        auto SaveAsync(param::hstring const& fileName, winrt::Microsoft::Graphics::Canvas::CanvasBitmapFileFormat const& fileFormat) const;
        auto SaveAsync(param::hstring const& fileName, winrt::Microsoft::Graphics::Canvas::CanvasBitmapFileFormat const& fileFormat, float quality) const;
        auto SaveAsync(winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, winrt::Microsoft::Graphics::Canvas::CanvasBitmapFileFormat const& fileFormat) const;
        auto SaveAsync(winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, winrt::Microsoft::Graphics::Canvas::CanvasBitmapFileFormat const& fileFormat, float quality) const;
        auto GetPixelBytes() const;
        auto GetPixelBytes(int32_t left, int32_t top, int32_t width, int32_t height) const;
        auto GetPixelBytes(winrt::Windows::Storage::Streams::IBuffer const& buffer) const;
        auto GetPixelBytes(winrt::Windows::Storage::Streams::IBuffer const& buffer, int32_t left, int32_t top, int32_t width, int32_t height) const;
        auto GetPixelColors() const;
        auto GetPixelColors(int32_t left, int32_t top, int32_t width, int32_t height) const;
        auto SetPixelBytes(array_view<uint8_t const> valueElements) const;
        auto SetPixelBytes(array_view<uint8_t const> valueElements, int32_t left, int32_t top, int32_t width, int32_t height) const;
        auto SetPixelBytes(winrt::Windows::Storage::Streams::IBuffer const& buffer) const;
        auto SetPixelBytes(winrt::Windows::Storage::Streams::IBuffer const& buffer, int32_t left, int32_t top, int32_t width, int32_t height) const;
        auto SetPixelColors(array_view<winrt::Windows::UI::Color const> valueElements) const;
        auto SetPixelColors(array_view<winrt::Windows::UI::Color const> valueElements, int32_t left, int32_t top, int32_t width, int32_t height) const;
        auto CopyPixelsFromBitmap(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& otherBitmap) const;
        auto CopyPixelsFromBitmap(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& otherBitmap, int32_t destX, int32_t destY) const;
        auto CopyPixelsFromBitmap(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& otherBitmap, int32_t destX, int32_t destY, int32_t sourceRectLeft, int32_t sourceRectTop, int32_t sourceRectWidth, int32_t sourceRectHeight) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasBitmap>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasBitmap<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasBitmapFactory
    {
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasBitmapFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasBitmapStatics
    {
        auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface) const;
        auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface, float dpi) const;
        auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
        auto CreateFromBytes(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, array_view<uint8_t const> bytes, int32_t widthInPixels, int32_t heightInPixels, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format) const;
        auto CreateFromBytes(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, array_view<uint8_t const> bytes, int32_t widthInPixels, int32_t heightInPixels, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format, float dpi) const;
        auto CreateFromBytes(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, array_view<uint8_t const> bytes, int32_t widthInPixels, int32_t heightInPixels, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
        auto CreateFromBytes(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IBuffer const& buffer, int32_t widthInPixels, int32_t heightInPixels, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format) const;
        auto CreateFromBytes(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IBuffer const& buffer, int32_t widthInPixels, int32_t heightInPixels, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format, float dpi) const;
        auto CreateFromBytes(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IBuffer const& buffer, int32_t widthInPixels, int32_t heightInPixels, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
        auto CreateFromColors(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, array_view<winrt::Windows::UI::Color const> colors, int32_t widthInPixels, int32_t heightInPixels) const;
        auto CreateFromColors(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, array_view<winrt::Windows::UI::Color const> colors, int32_t widthInPixels, int32_t heightInPixels, float dpi) const;
        auto CreateFromColors(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, array_view<winrt::Windows::UI::Color const> colors, int32_t widthInPixels, int32_t heightInPixels, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
        auto CreateFromSoftwareBitmap(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::Imaging::SoftwareBitmap const& sourceBitmap) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName, float dpi) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri, float dpi) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, float dpi) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasBitmapStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasBitmapStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasCommandList
    {
        auto CreateDrawingSession() const;
        [[nodiscard]] auto Device() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasCommandList>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasCommandList<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasCommandListFactory
    {
        auto Create(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasCommandListFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasCommandListFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasDevice
    {
        [[nodiscard]] auto ForceSoftwareRenderer() const;
        [[nodiscard]] auto MaximumBitmapSizeInPixels() const;
        auto IsPixelFormatSupported(winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& pixelFormat) const;
        auto IsBufferPrecisionSupported(winrt::Microsoft::Graphics::Canvas::CanvasBufferPrecision const& bufferPrecision) const;
        [[nodiscard]] auto MaximumCacheSize() const;
        auto MaximumCacheSize(uint64_t value) const;
        [[nodiscard]] auto LowPriority() const;
        auto LowPriority(bool value) const;
        auto DeviceLost(winrt::Windows::Foundation::TypedEventHandler<winrt::Microsoft::Graphics::Canvas::CanvasDevice, winrt::Windows::Foundation::IInspectable> const& value) const;
        using DeviceLost_revoker = impl::event_revoker<winrt::Microsoft::Graphics::Canvas::ICanvasDevice, &impl::abi_t<winrt::Microsoft::Graphics::Canvas::ICanvasDevice>::remove_DeviceLost>;
        [[nodiscard]] auto DeviceLost(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Microsoft::Graphics::Canvas::CanvasDevice, winrt::Windows::Foundation::IInspectable> const& value) const;
        auto DeviceLost(winrt::event_token const& token) const noexcept;
        auto IsDeviceLost(int32_t hresult) const;
        auto RaiseDeviceLost() const;
        auto Lock() const;
        auto IsDeviceLost() const;
        auto GetDeviceLostReason() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasDevice>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasDevice<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasDeviceFactory
    {
        auto CreateWithForceSoftwareRendererOption(bool forceSoftwareRenderer) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasDeviceFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasDeviceStatics
    {
        auto CreateFromDirect3D11Device(winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DDevice const& direct3DDevice) const;
        auto GetSharedDevice() const;
        auto GetSharedDevice(bool forceSoftwareRenderer) const;
        auto DebugLevel(winrt::Microsoft::Graphics::Canvas::CanvasDebugLevel const& value) const;
        [[nodiscard]] auto DebugLevel() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasDeviceStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasDeviceStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasDrawingSession
    {
        auto Clear(winrt::Windows::UI::Color const& color) const;
        auto Clear(winrt::Windows::Foundation::Numerics::float4 const& color) const;
        auto Flush() const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Numerics::float2 const& offset) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, float x, float y) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Rect const& destinationRectangle) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Rect const& sourceRectangle) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, float x, float y, winrt::Windows::Foundation::Rect const& sourceRectangle) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Rect const& destinationRectangle, winrt::Windows::Foundation::Rect const& sourceRectangle) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, float x, float y, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Rect const& destinationRectangle, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, float x, float y, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Rect const& destinationRectangle, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation, winrt::Microsoft::Graphics::Canvas::CanvasComposite const& composite) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, float x, float y, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation, winrt::Microsoft::Graphics::Canvas::CanvasComposite const& composite) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Rect const& destinationRectangle, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation, winrt::Microsoft::Graphics::Canvas::CanvasComposite const& composite) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation, winrt::Windows::Foundation::Numerics::float4x4 const& perspective) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, float x, float y, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation, winrt::Windows::Foundation::Numerics::float4x4 const& perspective) const;
        auto DrawImage(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Rect const& destinationRectangle, winrt::Windows::Foundation::Rect const& sourceRectangle, float opacity, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation, winrt::Windows::Foundation::Numerics::float4x4 const& perspective) const;
        auto DrawLine(winrt::Windows::Foundation::Numerics::float2 const& point0, winrt::Windows::Foundation::Numerics::float2 const& point1, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawLine(float x0, float y0, float x1, float y1, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawLine(winrt::Windows::Foundation::Numerics::float2 const& point0, winrt::Windows::Foundation::Numerics::float2 const& point1, winrt::Windows::UI::Color const& color) const;
        auto DrawLine(float x0, float y0, float x1, float y1, winrt::Windows::UI::Color const& color) const;
        auto DrawLine(winrt::Windows::Foundation::Numerics::float2 const& point0, winrt::Windows::Foundation::Numerics::float2 const& point1, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawLine(float x0, float y0, float x1, float y1, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawLine(winrt::Windows::Foundation::Numerics::float2 const& point0, winrt::Windows::Foundation::Numerics::float2 const& point1, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawLine(float x0, float y0, float x1, float y1, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawLine(winrt::Windows::Foundation::Numerics::float2 const& point0, winrt::Windows::Foundation::Numerics::float2 const& point1, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawLine(float x0, float y0, float x1, float y1, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawLine(winrt::Windows::Foundation::Numerics::float2 const& point0, winrt::Windows::Foundation::Numerics::float2 const& point1, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawLine(float x0, float y0, float x1, float y1, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawRectangle(winrt::Windows::Foundation::Rect const& rect, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawRectangle(float x, float y, float w, float h, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawRectangle(winrt::Windows::Foundation::Rect const& rect, winrt::Windows::UI::Color const& color) const;
        auto DrawRectangle(float x, float y, float w, float h, winrt::Windows::UI::Color const& color) const;
        auto DrawRectangle(winrt::Windows::Foundation::Rect const& rect, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawRectangle(float x, float y, float w, float h, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawRectangle(winrt::Windows::Foundation::Rect const& rect, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawRectangle(float x, float y, float w, float h, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawRectangle(winrt::Windows::Foundation::Rect const& rect, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawRectangle(float x, float y, float w, float h, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawRectangle(winrt::Windows::Foundation::Rect const& rect, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawRectangle(float x, float y, float w, float h, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto FillRectangle(winrt::Windows::Foundation::Rect const& rect, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillRectangle(float x, float y, float w, float h, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillRectangle(winrt::Windows::Foundation::Rect const& rect, winrt::Windows::UI::Color const& color) const;
        auto FillRectangle(float x, float y, float w, float h, winrt::Windows::UI::Color const& color) const;
        auto FillRectangle(winrt::Windows::Foundation::Rect const& rect, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush) const;
        auto FillRectangle(float x, float y, float w, float h, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush) const;
        auto DrawRoundedRectangle(winrt::Windows::Foundation::Rect const& rect, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawRoundedRectangle(float x, float y, float w, float h, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawRoundedRectangle(winrt::Windows::Foundation::Rect const& rect, float radiusX, float radiusY, winrt::Windows::UI::Color const& color) const;
        auto DrawRoundedRectangle(float x, float y, float w, float h, float radiusX, float radiusY, winrt::Windows::UI::Color const& color) const;
        auto DrawRoundedRectangle(winrt::Windows::Foundation::Rect const& rect, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawRoundedRectangle(float x, float y, float w, float h, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawRoundedRectangle(winrt::Windows::Foundation::Rect const& rect, float radiusX, float radiusY, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawRoundedRectangle(float x, float y, float w, float h, float radiusX, float radiusY, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawRoundedRectangle(winrt::Windows::Foundation::Rect const& rect, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawRoundedRectangle(float x, float y, float w, float h, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawRoundedRectangle(winrt::Windows::Foundation::Rect const& rect, float radiusX, float radiusY, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawRoundedRectangle(float x, float y, float w, float h, float radiusX, float radiusY, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto FillRoundedRectangle(winrt::Windows::Foundation::Rect const& rect, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillRoundedRectangle(float x, float y, float w, float h, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillRoundedRectangle(winrt::Windows::Foundation::Rect const& rect, float radiusX, float radiusY, winrt::Windows::UI::Color const& color) const;
        auto FillRoundedRectangle(float x, float y, float w, float h, float radiusX, float radiusY, winrt::Windows::UI::Color const& color) const;
        auto DrawEllipse(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawEllipse(float x, float y, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawEllipse(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radiusX, float radiusY, winrt::Windows::UI::Color const& color) const;
        auto DrawEllipse(float x, float y, float radiusX, float radiusY, winrt::Windows::UI::Color const& color) const;
        auto DrawEllipse(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawEllipse(float x, float y, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawEllipse(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radiusX, float radiusY, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawEllipse(float x, float y, float radiusX, float radiusY, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawEllipse(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawEllipse(float x, float y, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawEllipse(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radiusX, float radiusY, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawEllipse(float x, float y, float radiusX, float radiusY, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto FillEllipse(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillEllipse(float x, float y, float radiusX, float radiusY, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillEllipse(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radiusX, float radiusY, winrt::Windows::UI::Color const& color) const;
        auto FillEllipse(float x, float y, float radiusX, float radiusY, winrt::Windows::UI::Color const& color) const;
        auto DrawCircle(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radius, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawCircle(float x, float y, float radius, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawCircle(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radius, winrt::Windows::UI::Color const& color) const;
        auto DrawCircle(float x, float y, float radius, winrt::Windows::UI::Color const& color) const;
        auto DrawCircle(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radius, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawCircle(float x, float y, float radius, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawCircle(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radius, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawCircle(float x, float y, float radius, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawCircle(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radius, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawCircle(float x, float y, float radius, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawCircle(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radius, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawCircle(float x, float y, float radius, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto FillCircle(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radius, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillCircle(float x, float y, float radius, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillCircle(winrt::Windows::Foundation::Numerics::float2 const& centerPoint, float radius, winrt::Windows::UI::Color const& color) const;
        auto FillCircle(float x, float y, float radius, winrt::Windows::UI::Color const& color) const;
        auto DrawText(param::hstring const& text, winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Windows::UI::Color const& color) const;
        auto DrawText(param::hstring const& text, float x, float y, winrt::Windows::UI::Color const& color) const;
        auto DrawText(param::hstring const& text, winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& format) const;
        auto DrawText(param::hstring const& text, winrt::Windows::Foundation::Rect const& rectangle, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& format) const;
        auto DrawText(param::hstring const& text, float x, float y, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& format) const;
        auto DrawText(param::hstring const& text, float x, float y, float w, float h, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& format) const;
        auto DrawText(param::hstring const& text, winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Windows::UI::Color const& color, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& format) const;
        auto DrawText(param::hstring const& text, winrt::Windows::Foundation::Rect const& rectangle, winrt::Windows::UI::Color const& color, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& format) const;
        auto DrawText(param::hstring const& text, float x, float y, winrt::Windows::UI::Color const& color, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& format) const;
        auto DrawText(param::hstring const& text, float x, float y, float w, float h, winrt::Windows::UI::Color const& color, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& format) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::UI::Color const& color) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, float x, float y, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, float x, float y, winrt::Windows::UI::Color const& color) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::UI::Color const& color) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, float x, float y, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, float x, float y, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::UI::Color const& color, float strokeWidth) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, float x, float y, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, float x, float y, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto DrawGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::UI::Color const& color, float strokeWidth, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasStrokeStyle const& strokeStyle) const;
        auto FillGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush) const;
        auto FillGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::UI::Color const& color) const;
        auto FillGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, float x, float y, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, float x, float y, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush) const;
        auto FillGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, float x, float y, winrt::Windows::UI::Color const& color) const;
        auto FillGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto FillGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush) const;
        auto FillGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& geometry, winrt::Windows::UI::Color const& color) const;
        auto DrawCachedGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasCachedGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawCachedGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasCachedGeometry const& geometry, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::UI::Color const& color) const;
        auto DrawCachedGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasCachedGeometry const& geometry, float x, float y, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawCachedGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasCachedGeometry const& geometry, float x, float y, winrt::Windows::UI::Color const& color) const;
        auto DrawCachedGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasCachedGeometry const& geometry, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawCachedGeometry(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasCachedGeometry const& geometry, winrt::Windows::UI::Color const& color) const;
        auto DrawTextLayout(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayout const& textLayout, winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawTextLayout(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayout const& textLayout, float x, float y, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawTextLayout(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayout const& textLayout, winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Windows::UI::Color const& color) const;
        auto DrawTextLayout(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayout const& textLayout, float x, float y, winrt::Windows::UI::Color const& color) const;
        auto DrawGradientMesh(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGradientMesh const& gradientMesh) const;
        auto DrawGradientMesh(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGradientMesh const& gradientMesh, winrt::Windows::Foundation::Numerics::float2 const& point) const;
        auto DrawGradientMesh(winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGradientMesh const& gradientMesh, float x, float y) const;
        auto DrawSvg(winrt::Microsoft::Graphics::Canvas::Svg::CanvasSvgDocument const& svgDocument, winrt::Windows::Foundation::Size const& viewportSize) const;
        auto DrawSvg(winrt::Microsoft::Graphics::Canvas::Svg::CanvasSvgDocument const& svgDocument, winrt::Windows::Foundation::Size const& viewportSize, winrt::Windows::Foundation::Numerics::float2 const& point) const;
        auto DrawSvg(winrt::Microsoft::Graphics::Canvas::Svg::CanvasSvgDocument const& svgDocument, winrt::Windows::Foundation::Size const& viewportSize, float x, float y) const;
        [[nodiscard]] auto Antialiasing() const;
        auto Antialiasing(winrt::Microsoft::Graphics::Canvas::CanvasAntialiasing const& value) const;
        [[nodiscard]] auto Blend() const;
        auto Blend(winrt::Microsoft::Graphics::Canvas::CanvasBlend const& value) const;
        [[nodiscard]] auto TextAntialiasing() const;
        auto TextAntialiasing(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextAntialiasing const& value) const;
        [[nodiscard]] auto TextRenderingParameters() const;
        auto TextRenderingParameters(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingParameters const& value) const;
        [[nodiscard]] auto Transform() const;
        auto Transform(winrt::Windows::Foundation::Numerics::float3x2 const& value) const;
        [[nodiscard]] auto Units() const;
        auto Units(winrt::Microsoft::Graphics::Canvas::CanvasUnits const& value) const;
        [[nodiscard]] auto EffectBufferPrecision() const;
        auto EffectBufferPrecision(winrt::Windows::Foundation::IReference<winrt::Microsoft::Graphics::Canvas::CanvasBufferPrecision> const& value) const;
        [[nodiscard]] auto EffectTileSize() const;
        auto EffectTileSize(winrt::Windows::Graphics::Imaging::BitmapSize const& value) const;
        auto CreateLayer(float opacity) const;
        auto CreateLayer(winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush) const;
        auto CreateLayer(float opacity, winrt::Windows::Foundation::Rect const& clipRectangle) const;
        auto CreateLayer(winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush, winrt::Windows::Foundation::Rect const& clipRectangle) const;
        auto CreateLayer(float opacity, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& clipGeometry) const;
        auto CreateLayer(winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& clipGeometry) const;
        auto CreateLayer(float opacity, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& clipGeometry, winrt::Windows::Foundation::Numerics::float3x2 const& geometryTransform) const;
        auto CreateLayer(winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& clipGeometry, winrt::Windows::Foundation::Numerics::float3x2 const& geometryTransform) const;
        auto CreateLayer(float opacity, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& opacityBrush, winrt::Windows::Foundation::Rect const& clipRectangle, winrt::Microsoft::Graphics::Canvas::Geometry::CanvasGeometry const& clipGeometry, winrt::Windows::Foundation::Numerics::float3x2 const& geometryTransform, winrt::Microsoft::Graphics::Canvas::CanvasLayerOptions const& options) const;
        auto DrawGlyphRun(winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, float fontSize, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> glyphs, bool isSideways, uint32_t bidiLevel, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto DrawGlyphRun(winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, float fontSize, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> glyphs, bool isSideways, uint32_t bidiLevel, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode const& measuringMode) const;
        auto DrawGlyphRun(winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, float fontSize, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> glyphs, bool isSideways, uint32_t bidiLevel, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode const& measuringMode, param::hstring const& localeName, param::hstring const& textString, array_view<int32_t const> clusterMapIndices, uint32_t textPosition) const;
        auto CreateSpriteBatch() const;
        auto CreateSpriteBatch(winrt::Microsoft::Graphics::Canvas::CanvasSpriteSortMode const& sortMode) const;
        auto CreateSpriteBatch(winrt::Microsoft::Graphics::Canvas::CanvasSpriteSortMode const& sortMode, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation) const;
        auto CreateSpriteBatch(winrt::Microsoft::Graphics::Canvas::CanvasSpriteSortMode const& sortMode, winrt::Microsoft::Graphics::Canvas::CanvasImageInterpolation const& interpolation, winrt::Microsoft::Graphics::Canvas::CanvasSpriteOptions const& options) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasDrawingSession>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasDrawingSession<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasImage
    {
        auto GetBounds(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator) const;
        auto GetBounds(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Numerics::float3x2 const& transform) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasImage>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasImage<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasImageStatics
    {
        auto SaveAsync(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Rect const& sourceRectangle, float dpi, winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, winrt::Microsoft::Graphics::Canvas::CanvasBitmapFileFormat const& fileFormat) const;
        auto SaveAsync(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Rect const& sourceRectangle, float dpi, winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, winrt::Microsoft::Graphics::Canvas::CanvasBitmapFileFormat const& fileFormat, float quality) const;
        auto SaveAsync(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Rect const& sourceRectangle, float dpi, winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, winrt::Microsoft::Graphics::Canvas::CanvasBitmapFileFormat const& fileFormat, float quality, winrt::Microsoft::Graphics::Canvas::CanvasBufferPrecision const& bufferPrecision) const;
        auto ComputeHistogram(winrt::Microsoft::Graphics::Canvas::ICanvasImage const& image, winrt::Windows::Foundation::Rect const& sourceRectangle, winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Microsoft::Graphics::Canvas::Effects::EffectChannelSelect const& channelSelect, int32_t numberOfBins) const;
        auto IsHistogramSupported(winrt::Microsoft::Graphics::Canvas::CanvasDevice const& device) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasImageStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasImageStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasLock
    {
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasLock>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasLock<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasRenderTarget
    {
        auto CreateDrawingSession() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTarget>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasRenderTarget<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasRenderTargetFactory
    {
        auto CreateWithSize(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, winrt::Windows::Foundation::Size const& size) const;
        auto CreateWithWidthAndHeight(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, float width, float height) const;
        auto CreateWithWidthAndHeightAndDpi(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, float width, float height, float dpi) const;
        auto CreateWithWidthAndHeightAndDpiAndFormatAndAlpha(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, float width, float height, float dpi, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasRenderTargetFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasRenderTargetStatics
    {
        auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface) const;
        auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface, float dpi) const;
        auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasRenderTargetStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasRenderTargetStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasResourceCreator
    {
        [[nodiscard]] auto Device() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasResourceCreator<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasResourceCreatorWithDpi
    {
        [[nodiscard]] auto Dpi() const;
        auto ConvertPixelsToDips(int32_t pixels) const;
        auto ConvertDipsToPixels(float dips, winrt::Microsoft::Graphics::Canvas::CanvasDpiRounding const& dpiRounding) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasResourceCreatorWithDpi<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasSpriteBatch
    {
        auto Draw(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Rect const& destRect) const;
        auto Draw(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float2 const& offset) const;
        auto Draw(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float3x2 const& transform) const;
        auto Draw(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Rect const& destRect, winrt::Windows::Foundation::Numerics::float4 const& tint) const;
        auto Draw(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Numerics::float4 const& tint) const;
        auto Draw(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float3x2 const& transform, winrt::Windows::Foundation::Numerics::float4 const& tint) const;
        auto Draw(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Rect const& destRect, winrt::Windows::Foundation::Numerics::float4 const& tint, winrt::Microsoft::Graphics::Canvas::CanvasSpriteFlip const& flip) const;
        auto Draw(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float3x2 const& transform, winrt::Windows::Foundation::Numerics::float4 const& tint, winrt::Microsoft::Graphics::Canvas::CanvasSpriteFlip const& flip) const;
        auto Draw(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Numerics::float4 const& tint, winrt::Windows::Foundation::Numerics::float2 const& origin, float rotation, winrt::Windows::Foundation::Numerics::float2 const& scale, winrt::Microsoft::Graphics::Canvas::CanvasSpriteFlip const& flip) const;
        auto DrawFromSpriteSheet(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Rect const& destRect, winrt::Windows::Foundation::Rect const& sourceRect) const;
        auto DrawFromSpriteSheet(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Rect const& sourceRect) const;
        auto DrawFromSpriteSheet(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float3x2 const& transform, winrt::Windows::Foundation::Rect const& sourceRect) const;
        auto DrawFromSpriteSheet(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Rect const& destRect, winrt::Windows::Foundation::Rect const& sourceRect, winrt::Windows::Foundation::Numerics::float4 const& tint) const;
        auto DrawFromSpriteSheet(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Rect const& sourceRect, winrt::Windows::Foundation::Numerics::float4 const& tint) const;
        auto DrawFromSpriteSheet(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float3x2 const& transform, winrt::Windows::Foundation::Rect const& sourceRect, winrt::Windows::Foundation::Numerics::float4 const& tint) const;
        auto DrawFromSpriteSheet(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Rect const& destRect, winrt::Windows::Foundation::Rect const& sourceRect, winrt::Windows::Foundation::Numerics::float4 const& tint, winrt::Microsoft::Graphics::Canvas::CanvasSpriteFlip const& flip) const;
        auto DrawFromSpriteSheet(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float3x2 const& transform, winrt::Windows::Foundation::Rect const& sourceRect, winrt::Windows::Foundation::Numerics::float4 const& tint, winrt::Microsoft::Graphics::Canvas::CanvasSpriteFlip const& flip) const;
        auto DrawFromSpriteSheet(winrt::Microsoft::Graphics::Canvas::CanvasBitmap const& bitmap, winrt::Windows::Foundation::Numerics::float2 const& offset, winrt::Windows::Foundation::Rect const& sourceRect, winrt::Windows::Foundation::Numerics::float4 const& tint, winrt::Windows::Foundation::Numerics::float2 const& origin, float rotation, winrt::Windows::Foundation::Numerics::float2 const& scale, winrt::Microsoft::Graphics::Canvas::CanvasSpriteFlip const& flip) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatch>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasSpriteBatch<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasSpriteBatchStatics
    {
        auto IsSupported(winrt::Microsoft::Graphics::Canvas::CanvasDevice const& device) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatchStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasSpriteBatchStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasSwapChain
    {
        auto Present() const;
        auto Present(int32_t syncInterval) const;
        auto ResizeBuffers(winrt::Windows::Foundation::Size const& newSize) const;
        auto ResizeBuffers(float newWidth, float newHeight) const;
        auto ResizeBuffers(float newWidth, float newHeight, float newDpi) const;
        auto ResizeBuffers(float newWidth, float newHeight, float newDpi, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& newFormat, int32_t bufferCount) const;
        [[nodiscard]] auto Size() const;
        [[nodiscard]] auto SizeInPixels() const;
        [[nodiscard]] auto Format() const;
        [[nodiscard]] auto BufferCount() const;
        [[nodiscard]] auto AlphaMode() const;
        [[nodiscard]] auto Rotation() const;
        auto Rotation(winrt::Microsoft::Graphics::Canvas::CanvasSwapChainRotation const& value) const;
        [[nodiscard]] auto SourceSize() const;
        auto SourceSize(winrt::Windows::Foundation::Size const& value) const;
        [[nodiscard]] auto TransformMatrix() const;
        auto TransformMatrix(winrt::Windows::Foundation::Numerics::float3x2 const& value) const;
        auto CreateDrawingSession(winrt::Windows::UI::Color const& clearColor) const;
        auto WaitForVerticalBlank() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChain>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasSwapChain<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasSwapChainFactory
    {
        auto CreateWithSize(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, winrt::Windows::Foundation::Size const& size) const;
        auto CreateWithWidthAndHeight(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, float width, float height) const;
        auto CreateWithWidthAndHeightAndDpi(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, float width, float height, float dpi) const;
        auto CreateWithAllOptions(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, float width, float height, float dpi, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format, int32_t bufferCount, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alphaMode) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasSwapChainFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasSwapChainStatics
    {
        auto CreateForCoreWindow(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::UI::Core::CoreWindow const& coreWindow, float dpi) const;
        auto CreateForCoreWindow(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::UI::Core::CoreWindow const& coreWindow, float width, float height, float dpi, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format, int32_t bufferCount) const;
        auto CreateForWindowId(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Microsoft::UI::WindowId const& windowId, float width, float height, float dpi) const;
        auto CreateForWindowId(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Microsoft::UI::WindowId const& windowId, float width, float height, float dpi, winrt::Windows::Graphics::DirectX::DirectXPixelFormat const& format, int32_t bufferCount) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasSwapChainStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasSwapChainStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasVirtualBitmap
    {
        [[nodiscard]] auto Device() const;
        [[nodiscard]] auto IsCachedOnDemand() const;
        [[nodiscard]] auto SizeInPixels() const;
        [[nodiscard]] auto Size() const;
        [[nodiscard]] auto Bounds() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmap>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasVirtualBitmap<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_ICanvasVirtualBitmapStatics
    {
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName, winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions const& options) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName, winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions const& options, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri, winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions const& options) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri, winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions const& options, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions const& options) const;
        auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions const& options, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmapStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_ICanvasVirtualBitmapStatics<D>;
    };
}
#endif
