Files
nearby/internal/platform/implementation/windows/generated/winrt/impl/Microsoft.Graphics.Imaging.0.h
T
2026-01-27 23:46:02 -08:00

134 lines
4.8 KiB
C++

// WARNING: Please don't edit this file. It was generated by C++/WinRT
// v2.0.250303.1
#pragma once
#ifndef WINRT_Microsoft_Graphics_Imaging_0_H
#define WINRT_Microsoft_Graphics_Imaging_0_H
WINRT_EXPORT namespace winrt::Windows::Graphics::Imaging {
struct SoftwareBitmap;
}
WINRT_EXPORT namespace winrt::Windows::Storage::Streams { struct IBuffer; }
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Imaging {
enum class ImageBufferPixelFormat : int32_t {
Rgb8 = 137224,
Rgba8 = 30,
Argb8 = 2498570,
Bgra8 = 87,
Gray8 = 62,
};
struct IImageBuffer;
struct IImageBufferStatics;
struct ImageBuffer;
struct ImageBufferContract;
}
namespace winrt::impl {
template <>
struct category<winrt::Microsoft::Graphics::Imaging::IImageBuffer> {
using type = interface_category;
};
template <>
struct category<winrt::Microsoft::Graphics::Imaging::IImageBufferStatics> {
using type = interface_category;
};
template <>
struct category<winrt::Microsoft::Graphics::Imaging::ImageBuffer> {
using type = class_category;
};
template <>
struct category<winrt::Microsoft::Graphics::Imaging::ImageBufferPixelFormat> {
using type = enum_category;
};
template <>
inline constexpr auto&
name_v<winrt::Microsoft::Graphics::Imaging::ImageBuffer> =
L"Microsoft.Graphics.Imaging.ImageBuffer";
template <>
inline constexpr auto&
name_v<winrt::Microsoft::Graphics::Imaging::ImageBufferPixelFormat> =
L"Microsoft.Graphics.Imaging.ImageBufferPixelFormat";
template <>
inline constexpr auto&
name_v<winrt::Microsoft::Graphics::Imaging::IImageBuffer> =
L"Microsoft.Graphics.Imaging.IImageBuffer";
template <>
inline constexpr auto&
name_v<winrt::Microsoft::Graphics::Imaging::IImageBufferStatics> =
L"Microsoft.Graphics.Imaging.IImageBufferStatics";
template <>
inline constexpr auto&
name_v<winrt::Microsoft::Graphics::Imaging::ImageBufferContract> =
L"Microsoft.Graphics.Imaging.ImageBufferContract";
template <>
inline constexpr guid guid_v<winrt::Microsoft::Graphics::Imaging::IImageBuffer>{
0x3BAABD0B,
0x1854,
0x51F1,
{0xBD, 0x2A, 0x74, 0xC8, 0x78, 0x58, 0xF4,
0x61}}; // 3BAABD0B-1854-51F1-BD2A-74C87858F461
template <>
inline constexpr guid
guid_v<winrt::Microsoft::Graphics::Imaging::IImageBufferStatics>{
0x35B17BD3,
0xF346,
0x529F,
{0x8C, 0x0F, 0x3B, 0xF9, 0x6C, 0x56, 0xEB,
0x13}}; // 35B17BD3-F346-529F-8C0F-3BF96C56EB13
template <>
struct default_interface<winrt::Microsoft::Graphics::Imaging::ImageBuffer> {
using type = winrt::Microsoft::Graphics::Imaging::IImageBuffer;
};
template <>
struct abi<winrt::Microsoft::Graphics::Imaging::IImageBuffer> {
struct WINRT_IMPL_NOVTABLE type : inspectable_abi {
virtual int32_t __stdcall get_Buffer(void**) noexcept = 0;
virtual int32_t __stdcall get_PixelFormat(int32_t*) noexcept = 0;
virtual int32_t __stdcall get_PixelHeight(int32_t*) noexcept = 0;
virtual int32_t __stdcall get_PixelWidth(int32_t*) noexcept = 0;
virtual int32_t __stdcall get_RowStride(int32_t*) noexcept = 0;
virtual int32_t __stdcall CopyToByteArray(uint32_t, uint8_t*) noexcept = 0;
virtual int32_t __stdcall CopyToSoftwareBitmap(void**) noexcept = 0;
};
};
template <>
struct abi<winrt::Microsoft::Graphics::Imaging::IImageBufferStatics> {
struct WINRT_IMPL_NOVTABLE type : inspectable_abi {
virtual int32_t __stdcall CreateForBuffer(void*, int32_t, int32_t, int32_t,
int32_t, void**) noexcept = 0;
virtual int32_t __stdcall CreateForSoftwareBitmap(void*,
void**) noexcept = 0;
};
};
template <typename D>
struct consume_Microsoft_Graphics_Imaging_IImageBuffer {
[[nodiscard]] auto Buffer() const;
[[nodiscard]] auto PixelFormat() const;
[[nodiscard]] auto PixelHeight() const;
[[nodiscard]] auto PixelWidth() const;
[[nodiscard]] auto RowStride() const;
auto CopyToByteArray(array_view<uint8_t> values) const;
auto CopyToSoftwareBitmap() const;
};
template <>
struct consume<winrt::Microsoft::Graphics::Imaging::IImageBuffer> {
template <typename D>
using type = consume_Microsoft_Graphics_Imaging_IImageBuffer<D>;
};
template <typename D>
struct consume_Microsoft_Graphics_Imaging_IImageBufferStatics {
auto CreateForBuffer(
winrt::Windows::Storage::Streams::IBuffer const& buffer,
winrt::Microsoft::Graphics::Imaging::ImageBufferPixelFormat const&
pixelFormat,
int32_t width, int32_t height, int32_t rowStride) const;
auto CreateForSoftwareBitmap(
winrt::Windows::Graphics::Imaging::SoftwareBitmap const& softwareBitmap)
const;
};
template <>
struct consume<winrt::Microsoft::Graphics::Imaging::IImageBufferStatics> {
template <typename D>
using type = consume_Microsoft_Graphics_Imaging_IImageBufferStatics<D>;
};
} // namespace winrt::impl
#endif