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

#pragma once
#ifndef WINRT_Microsoft_Graphics_Canvas_2_H
#define WINRT_Microsoft_Graphics_Canvas_2_H
#include "winrt/impl/Microsoft.Graphics.Canvas.Effects.1.h"
#include "winrt/impl/Microsoft.UI.1.h"
#include "winrt/impl/Windows.Foundation.1.h"
#include "winrt/impl/Windows.Graphics.DirectX.1.h"
#include "winrt/impl/Windows.Graphics.DirectX.Direct3D11.1.h"
#include "winrt/impl/Windows.Graphics.Effects.1.h"
#include "winrt/impl/Windows.Graphics.Imaging.1.h"
#include "winrt/impl/Windows.Storage.Streams.1.h"
#include "winrt/impl/Windows.UI.1.h"
#include "winrt/impl/Windows.UI.Core.1.h"
#include "winrt/impl/Microsoft.Graphics.Canvas.1.h"
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas
{
    struct WINRT_IMPL_EMPTY_BASES CanvasActiveLayer : winrt::Microsoft::Graphics::Canvas::ICanvasActiveLayer
    {
        CanvasActiveLayer(std::nullptr_t) noexcept {}
        CanvasActiveLayer(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasActiveLayer(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES CanvasBitmap : winrt::Microsoft::Graphics::Canvas::ICanvasBitmap
    {
        CanvasBitmap(std::nullptr_t) noexcept {}
        CanvasBitmap(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasBitmap(ptr, take_ownership_from_abi) {}
        static auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface);
        static auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface, float dpi);
        static 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);
        static 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);
        static 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);
        static 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);
        static 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);
        static 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);
        static 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);
        static auto CreateFromColors(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, array_view<winrt::Windows::UI::Color const> colors, int32_t widthInPixels, int32_t heightInPixels);
        static 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);
        static 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);
        static auto CreateFromSoftwareBitmap(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::Imaging::SoftwareBitmap const& sourceBitmap);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName, float dpi);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri, float dpi);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri, float dpi, winrt::Microsoft::Graphics::Canvas::CanvasAlphaMode const& alpha);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, float dpi);
        static 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);
    };
    struct WINRT_IMPL_EMPTY_BASES CanvasCommandList : winrt::Microsoft::Graphics::Canvas::ICanvasCommandList
    {
        CanvasCommandList(std::nullptr_t) noexcept {}
        CanvasCommandList(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasCommandList(ptr, take_ownership_from_abi) {}
        explicit CanvasCommandList(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator);
    };
    struct WINRT_IMPL_EMPTY_BASES CanvasDevice : winrt::Microsoft::Graphics::Canvas::ICanvasDevice
    {
        CanvasDevice(std::nullptr_t) noexcept {}
        CanvasDevice(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasDevice(ptr, take_ownership_from_abi) {}
        CanvasDevice();
        explicit CanvasDevice(bool forceSoftwareRenderer);
        static auto CreateFromDirect3D11Device(winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DDevice const& direct3DDevice);
        static auto GetSharedDevice();
        static auto GetSharedDevice(bool forceSoftwareRenderer);
        static auto DebugLevel(winrt::Microsoft::Graphics::Canvas::CanvasDebugLevel const& value);
        [[nodiscard]] static auto DebugLevel();
    };
    struct WINRT_IMPL_EMPTY_BASES CanvasDrawingSession : winrt::Microsoft::Graphics::Canvas::ICanvasDrawingSession
    {
        CanvasDrawingSession(std::nullptr_t) noexcept {}
        CanvasDrawingSession(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasDrawingSession(ptr, take_ownership_from_abi) {}
    };
    struct CanvasImage
    {
        CanvasImage() = delete;
        static 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);
        static 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);
        static 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);
        static 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);
        static auto IsHistogramSupported(winrt::Microsoft::Graphics::Canvas::CanvasDevice const& device);
    };
    struct WINRT_IMPL_EMPTY_BASES CanvasLock : winrt::Microsoft::Graphics::Canvas::ICanvasLock,
        impl::require<CanvasLock, winrt::Windows::Foundation::IClosable>
    {
        CanvasLock(std::nullptr_t) noexcept {}
        CanvasLock(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasLock(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES CanvasRenderTarget : winrt::Microsoft::Graphics::Canvas::ICanvasRenderTarget,
        impl::base<CanvasRenderTarget, winrt::Microsoft::Graphics::Canvas::CanvasBitmap>,
        impl::require<CanvasRenderTarget, winrt::Windows::Graphics::Effects::IGraphicsEffectSource, winrt::Windows::Foundation::IClosable, winrt::Microsoft::Graphics::Canvas::ICanvasImage, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface, winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator, winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi, winrt::Microsoft::Graphics::Canvas::ICanvasBitmap>
    {
        CanvasRenderTarget(std::nullptr_t) noexcept {}
        CanvasRenderTarget(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasRenderTarget(ptr, take_ownership_from_abi) {}
        CanvasRenderTarget(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, winrt::Windows::Foundation::Size const& size);
        CanvasRenderTarget(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, float width, float height);
        CanvasRenderTarget(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, float width, float height, float dpi);
        CanvasRenderTarget(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);
        static auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface);
        static auto CreateFromDirect3D11Surface(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& surface, float dpi);
        static 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);
    };
    struct WINRT_IMPL_EMPTY_BASES CanvasSpriteBatch : winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatch
    {
        CanvasSpriteBatch(std::nullptr_t) noexcept {}
        CanvasSpriteBatch(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasSpriteBatch(ptr, take_ownership_from_abi) {}
        static auto IsSupported(winrt::Microsoft::Graphics::Canvas::CanvasDevice const& device);
    };
    struct WINRT_IMPL_EMPTY_BASES CanvasSwapChain : winrt::Microsoft::Graphics::Canvas::ICanvasSwapChain
    {
        CanvasSwapChain(std::nullptr_t) noexcept {}
        CanvasSwapChain(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasSwapChain(ptr, take_ownership_from_abi) {}
        CanvasSwapChain(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, winrt::Windows::Foundation::Size const& size);
        CanvasSwapChain(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreatorWithDpi const& resourceCreator, float width, float height);
        CanvasSwapChain(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, float width, float height, float dpi);
        CanvasSwapChain(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);
        static auto CreateForCoreWindow(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::UI::Core::CoreWindow const& coreWindow, float dpi);
        static 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);
        static auto CreateForWindowId(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Microsoft::UI::WindowId const& windowId, float width, float height, float dpi);
        static 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);
    };
    struct WINRT_IMPL_EMPTY_BASES CanvasVirtualBitmap : winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmap
    {
        CanvasVirtualBitmap(std::nullptr_t) noexcept {}
        CanvasVirtualBitmap(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::Graphics::Canvas::ICanvasVirtualBitmap(ptr, take_ownership_from_abi) {}
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& fileName, winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions const& options);
        static 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);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Foundation::Uri const& uri, winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions const& options);
        static 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);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream);
        static auto LoadAsync(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, winrt::Microsoft::Graphics::Canvas::CanvasVirtualBitmapOptions const& options);
        static 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);
    };
}
#endif
