// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Storage_Streams_0_H #define WINRT_Windows_Storage_Streams_0_H WINRT_EXPORT namespace winrt::Windows::Foundation { template struct WINRT_IMPL_EMPTY_BASES IAsyncOperation; struct IMemoryBuffer; struct MemoryBuffer; struct Uri; } WINRT_EXPORT namespace winrt::Windows::Foundation::Collections { struct IPropertySet; } WINRT_EXPORT namespace winrt::Windows::Storage { enum class FileAccessMode : int32_t; struct IStorageFile; enum class StorageOpenOptions : uint32_t; } WINRT_EXPORT namespace winrt::Windows::System { struct User; } WINRT_EXPORT namespace winrt::Windows::Storage::Streams { enum class ByteOrder : int32_t { LittleEndian = 0, BigEndian = 1, }; enum class FileOpenDisposition : int32_t { OpenExisting = 0, OpenAlways = 1, CreateNew = 2, CreateAlways = 3, TruncateExisting = 4, }; enum class InputStreamOptions : uint32_t { None = 0, Partial = 0x1, ReadAhead = 0x2, }; enum class UnicodeEncoding : int32_t { Utf8 = 0, Utf16LE = 1, Utf16BE = 2, }; struct IBuffer; struct IBufferFactory; struct IBufferStatics; struct IContentTypeProvider; struct IDataReader; struct IDataReaderFactory; struct IDataReaderStatics; struct IDataWriter; struct IDataWriterFactory; struct IFileRandomAccessStreamStatics; struct IInputStream; struct IInputStreamReference; struct IOutputStream; struct IPropertySetSerializer; struct IRandomAccessStream; struct IRandomAccessStreamReference; struct IRandomAccessStreamReferenceStatics; struct IRandomAccessStreamStatics; struct IRandomAccessStreamWithContentType; struct Buffer; struct DataReader; struct DataReaderLoadOperation; struct DataWriter; struct DataWriterStoreOperation; struct FileInputStream; struct FileOutputStream; struct FileRandomAccessStream; struct InMemoryRandomAccessStream; struct InputStreamOverStream; struct OutputStreamOverStream; struct RandomAccessStream; struct RandomAccessStreamOverStream; struct RandomAccessStreamReference; } namespace winrt::impl { template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.Buffer"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.DataReader"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.DataReaderLoadOperation"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.DataWriter"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.DataWriterStoreOperation"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.FileInputStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.FileOutputStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.FileRandomAccessStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.InMemoryRandomAccessStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.InputStreamOverStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.OutputStreamOverStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.RandomAccessStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.RandomAccessStreamOverStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.RandomAccessStreamReference"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.ByteOrder"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.FileOpenDisposition"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.InputStreamOptions"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.UnicodeEncoding"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IBuffer"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IBufferFactory"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IBufferStatics"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IContentTypeProvider"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IDataReader"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IDataReaderFactory"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IDataReaderStatics"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IDataWriter"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IDataWriterFactory"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IFileRandomAccessStreamStatics"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IInputStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IInputStreamReference"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IOutputStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IPropertySetSerializer"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IRandomAccessStream"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IRandomAccessStreamReference"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IRandomAccessStreamReferenceStatics"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IRandomAccessStreamStatics"; template <> inline constexpr auto& name_v = L"Windows.Storage.Streams.IRandomAccessStreamWithContentType"; template <> inline constexpr guid guid_v{ 0x905A0FE0,0xBC53,0x11DF,{ 0x8C,0x49,0x00,0x1E,0x4F,0xC6,0x86,0xDA } }; // 905A0FE0-BC53-11DF-8C49-001E4FC686DA template <> inline constexpr guid guid_v{ 0x71AF914D,0xC10F,0x484B,{ 0xBC,0x50,0x14,0xBC,0x62,0x3B,0x3A,0x27 } }; // 71AF914D-C10F-484B-BC50-14BC623B3A27 template <> inline constexpr guid guid_v{ 0xE901E65B,0xD716,0x475A,{ 0xA9,0x0A,0xAF,0x72,0x29,0xB1,0xE7,0x41 } }; // E901E65B-D716-475A-A90A-AF7229B1E741 template <> inline constexpr guid guid_v{ 0x97D098A5,0x3B99,0x4DE9,{ 0x88,0xA5,0xE1,0x1D,0x2F,0x50,0xC7,0x95 } }; // 97D098A5-3B99-4DE9-88A5-E11D2F50C795 template <> inline constexpr guid guid_v{ 0xE2B50029,0xB4C1,0x4314,{ 0xA4,0xB8,0xFB,0x81,0x3A,0x2F,0x27,0x5E } }; // E2B50029-B4C1-4314-A4B8-FB813A2F275E template <> inline constexpr guid guid_v{ 0xD7527847,0x57DA,0x4E15,{ 0x91,0x4C,0x06,0x80,0x66,0x99,0xA0,0x98 } }; // D7527847-57DA-4E15-914C-06806699A098 template <> inline constexpr guid guid_v{ 0x11FCBFC8,0xF93A,0x471B,{ 0xB1,0x21,0xF3,0x79,0xE3,0x49,0x31,0x3C } }; // 11FCBFC8-F93A-471B-B121-F379E349313C template <> inline constexpr guid guid_v{ 0x64B89265,0xD341,0x4922,{ 0xB3,0x8A,0xDD,0x4A,0xF8,0x80,0x8C,0x4E } }; // 64B89265-D341-4922-B38A-DD4AF8808C4E template <> inline constexpr guid guid_v{ 0x338C67C2,0x8B84,0x4C2B,{ 0x9C,0x50,0x7B,0x87,0x67,0x84,0x7A,0x1F } }; // 338C67C2-8B84-4C2B-9C50-7B8767847A1F template <> inline constexpr guid guid_v{ 0x73550107,0x3B57,0x4B5D,{ 0x83,0x45,0x55,0x4D,0x2F,0xC6,0x21,0xF0 } }; // 73550107-3B57-4B5D-8345-554D2FC621F0 template <> inline constexpr guid guid_v{ 0x905A0FE2,0xBC53,0x11DF,{ 0x8C,0x49,0x00,0x1E,0x4F,0xC6,0x86,0xDA } }; // 905A0FE2-BC53-11DF-8C49-001E4FC686DA template <> inline constexpr guid guid_v{ 0x43929D18,0x5EC9,0x4B5A,{ 0x91,0x9C,0x42,0x05,0xB0,0xC8,0x04,0xB6 } }; // 43929D18-5EC9-4B5A-919C-4205B0C804B6 template <> inline constexpr guid guid_v{ 0x905A0FE6,0xBC53,0x11DF,{ 0x8C,0x49,0x00,0x1E,0x4F,0xC6,0x86,0xDA } }; // 905A0FE6-BC53-11DF-8C49-001E4FC686DA template <> inline constexpr guid guid_v{ 0x6E8EBF1C,0xEF3D,0x4376,{ 0xB2,0x0E,0x5B,0xE6,0x38,0xAE,0xAC,0x77 } }; // 6E8EBF1C-EF3D-4376-B20E-5BE638AEAC77 template <> inline constexpr guid guid_v{ 0x905A0FE1,0xBC53,0x11DF,{ 0x8C,0x49,0x00,0x1E,0x4F,0xC6,0x86,0xDA } }; // 905A0FE1-BC53-11DF-8C49-001E4FC686DA template <> inline constexpr guid guid_v{ 0x33EE3134,0x1DD6,0x4E3A,{ 0x80,0x67,0xD1,0xC1,0x62,0xE8,0x64,0x2B } }; // 33EE3134-1DD6-4E3A-8067-D1C162E8642B template <> inline constexpr guid guid_v{ 0x857309DC,0x3FBF,0x4E7D,{ 0x98,0x6F,0xEF,0x3B,0x1A,0x07,0xA9,0x64 } }; // 857309DC-3FBF-4E7D-986F-EF3B1A07A964 template <> inline constexpr guid guid_v{ 0x524CEDCF,0x6E29,0x4CE5,{ 0x95,0x73,0x6B,0x75,0x3D,0xB6,0x6C,0x3A } }; // 524CEDCF-6E29-4CE5-9573-6B753DB66C3A template <> inline constexpr guid guid_v{ 0xCC254827,0x4B3D,0x438F,{ 0x92,0x32,0x10,0xC7,0x6B,0xC7,0xE0,0x38 } }; // CC254827-4B3D-438F-9232-10C76BC7E038 template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IBuffer; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IDataReader; }; template <> struct default_interface{ using type = winrt::Windows::Foundation::IAsyncOperation; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IDataWriter; }; template <> struct default_interface{ using type = winrt::Windows::Foundation::IAsyncOperation; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IInputStream; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IOutputStream; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IRandomAccessStream; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IRandomAccessStream; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IInputStream; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IOutputStream; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IRandomAccessStream; }; template <> struct default_interface{ using type = winrt::Windows::Storage::Streams::IRandomAccessStreamReference; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Capacity(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_Length(uint32_t*) noexcept = 0; virtual int32_t __stdcall put_Length(uint32_t) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall Create(uint32_t, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateCopyFromMemoryBuffer(void*, void**) noexcept = 0; virtual int32_t __stdcall CreateMemoryBufferOverIBuffer(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_ContentType(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_UnconsumedBufferLength(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_UnicodeEncoding(int32_t*) noexcept = 0; virtual int32_t __stdcall put_UnicodeEncoding(int32_t) noexcept = 0; virtual int32_t __stdcall get_ByteOrder(int32_t*) noexcept = 0; virtual int32_t __stdcall put_ByteOrder(int32_t) noexcept = 0; virtual int32_t __stdcall get_InputStreamOptions(uint32_t*) noexcept = 0; virtual int32_t __stdcall put_InputStreamOptions(uint32_t) noexcept = 0; virtual int32_t __stdcall ReadByte(uint8_t*) noexcept = 0; virtual int32_t __stdcall ReadBytes(uint32_t, uint8_t*) noexcept = 0; virtual int32_t __stdcall ReadBuffer(uint32_t, void**) noexcept = 0; virtual int32_t __stdcall ReadBoolean(bool*) noexcept = 0; virtual int32_t __stdcall ReadGuid(winrt::guid*) noexcept = 0; virtual int32_t __stdcall ReadInt16(int16_t*) noexcept = 0; virtual int32_t __stdcall ReadInt32(int32_t*) noexcept = 0; virtual int32_t __stdcall ReadInt64(int64_t*) noexcept = 0; virtual int32_t __stdcall ReadUInt16(uint16_t*) noexcept = 0; virtual int32_t __stdcall ReadUInt32(uint32_t*) noexcept = 0; virtual int32_t __stdcall ReadUInt64(uint64_t*) noexcept = 0; virtual int32_t __stdcall ReadSingle(float*) noexcept = 0; virtual int32_t __stdcall ReadDouble(double*) noexcept = 0; virtual int32_t __stdcall ReadString(uint32_t, void**) noexcept = 0; virtual int32_t __stdcall ReadDateTime(int64_t*) noexcept = 0; virtual int32_t __stdcall ReadTimeSpan(int64_t*) noexcept = 0; virtual int32_t __stdcall LoadAsync(uint32_t, void**) noexcept = 0; virtual int32_t __stdcall DetachBuffer(void**) noexcept = 0; virtual int32_t __stdcall DetachStream(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateDataReader(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall FromBuffer(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_UnstoredBufferLength(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_UnicodeEncoding(int32_t*) noexcept = 0; virtual int32_t __stdcall put_UnicodeEncoding(int32_t) noexcept = 0; virtual int32_t __stdcall get_ByteOrder(int32_t*) noexcept = 0; virtual int32_t __stdcall put_ByteOrder(int32_t) noexcept = 0; virtual int32_t __stdcall WriteByte(uint8_t) noexcept = 0; virtual int32_t __stdcall WriteBytes(uint32_t, uint8_t*) noexcept = 0; virtual int32_t __stdcall WriteBuffer(void*) noexcept = 0; virtual int32_t __stdcall WriteBufferRange(void*, uint32_t, uint32_t) noexcept = 0; virtual int32_t __stdcall WriteBoolean(bool) noexcept = 0; virtual int32_t __stdcall WriteGuid(winrt::guid) noexcept = 0; virtual int32_t __stdcall WriteInt16(int16_t) noexcept = 0; virtual int32_t __stdcall WriteInt32(int32_t) noexcept = 0; virtual int32_t __stdcall WriteInt64(int64_t) noexcept = 0; virtual int32_t __stdcall WriteUInt16(uint16_t) noexcept = 0; virtual int32_t __stdcall WriteUInt32(uint32_t) noexcept = 0; virtual int32_t __stdcall WriteUInt64(uint64_t) noexcept = 0; virtual int32_t __stdcall WriteSingle(float) noexcept = 0; virtual int32_t __stdcall WriteDouble(double) noexcept = 0; virtual int32_t __stdcall WriteDateTime(int64_t) noexcept = 0; virtual int32_t __stdcall WriteTimeSpan(int64_t) noexcept = 0; virtual int32_t __stdcall WriteString(void*, uint32_t*) noexcept = 0; virtual int32_t __stdcall MeasureString(void*, uint32_t*) noexcept = 0; virtual int32_t __stdcall StoreAsync(void**) noexcept = 0; virtual int32_t __stdcall FlushAsync(void**) noexcept = 0; virtual int32_t __stdcall DetachBuffer(void**) noexcept = 0; virtual int32_t __stdcall DetachStream(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateDataWriter(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall OpenAsync(void*, int32_t, void**) noexcept = 0; virtual int32_t __stdcall OpenWithOptionsAsync(void*, int32_t, uint32_t, int32_t, void**) noexcept = 0; virtual int32_t __stdcall OpenTransactedWriteAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall OpenTransactedWriteWithOptionsAsync(void*, uint32_t, int32_t, void**) noexcept = 0; virtual int32_t __stdcall OpenForUserAsync(void*, void*, int32_t, void**) noexcept = 0; virtual int32_t __stdcall OpenForUserWithOptionsAsync(void*, void*, int32_t, uint32_t, int32_t, void**) noexcept = 0; virtual int32_t __stdcall OpenTransactedWriteForUserAsync(void*, void*, void**) noexcept = 0; virtual int32_t __stdcall OpenTransactedWriteForUserWithOptionsAsync(void*, void*, uint32_t, int32_t, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall ReadAsync(void*, uint32_t, uint32_t, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall OpenSequentialReadAsync(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall WriteAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall FlushAsync(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall Serialize(void*, void**) noexcept = 0; virtual int32_t __stdcall Deserialize(void*, void*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Size(uint64_t*) noexcept = 0; virtual int32_t __stdcall put_Size(uint64_t) noexcept = 0; virtual int32_t __stdcall GetInputStreamAt(uint64_t, void**) noexcept = 0; virtual int32_t __stdcall GetOutputStreamAt(uint64_t, void**) noexcept = 0; virtual int32_t __stdcall get_Position(uint64_t*) noexcept = 0; virtual int32_t __stdcall Seek(uint64_t) noexcept = 0; virtual int32_t __stdcall CloneStream(void**) noexcept = 0; virtual int32_t __stdcall get_CanRead(bool*) noexcept = 0; virtual int32_t __stdcall get_CanWrite(bool*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall OpenReadAsync(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateFromFile(void*, void**) noexcept = 0; virtual int32_t __stdcall CreateFromUri(void*, void**) noexcept = 0; virtual int32_t __stdcall CreateFromStream(void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CopyAsync(void*, void*, void**) noexcept = 0; virtual int32_t __stdcall CopySizeAsync(void*, void*, uint64_t, void**) noexcept = 0; virtual int32_t __stdcall CopyAndCloseAsync(void*, void*, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { }; }; template struct consume_Windows_Storage_Streams_IBuffer { [[nodiscard]] auto Capacity() const; [[nodiscard]] auto Length() const; auto Length(uint32_t value) const; auto data() const { uint8_t* data{}; static_cast(*this).template as()->Buffer(&data); return data; } }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IBuffer; }; template struct consume_Windows_Storage_Streams_IBufferFactory { auto Create(uint32_t capacity) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IBufferFactory; }; template struct consume_Windows_Storage_Streams_IBufferStatics { auto CreateCopyFromMemoryBuffer(winrt::Windows::Foundation::IMemoryBuffer const& input) const; auto CreateMemoryBufferOverIBuffer(winrt::Windows::Storage::Streams::IBuffer const& input) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IBufferStatics; }; template struct consume_Windows_Storage_Streams_IContentTypeProvider { [[nodiscard]] auto ContentType() const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IContentTypeProvider; }; template struct consume_Windows_Storage_Streams_IDataReader { [[nodiscard]] auto UnconsumedBufferLength() const; [[nodiscard]] auto UnicodeEncoding() const; auto UnicodeEncoding(winrt::Windows::Storage::Streams::UnicodeEncoding const& value) const; [[nodiscard]] auto ByteOrder() const; auto ByteOrder(winrt::Windows::Storage::Streams::ByteOrder const& value) const; [[nodiscard]] auto InputStreamOptions() const; auto InputStreamOptions(winrt::Windows::Storage::Streams::InputStreamOptions const& value) const; auto ReadByte() const; auto ReadBytes(array_view value) const; auto ReadBuffer(uint32_t length) const; auto ReadBoolean() const; auto ReadGuid() const; auto ReadInt16() const; auto ReadInt32() const; auto ReadInt64() const; auto ReadUInt16() const; auto ReadUInt32() const; auto ReadUInt64() const; auto ReadSingle() const; auto ReadDouble() const; auto ReadString(uint32_t codeUnitCount) const; auto ReadDateTime() const; auto ReadTimeSpan() const; auto LoadAsync(uint32_t count) const; auto DetachBuffer() const; auto DetachStream() const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IDataReader; }; template struct consume_Windows_Storage_Streams_IDataReaderFactory { auto CreateDataReader(winrt::Windows::Storage::Streams::IInputStream const& inputStream) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IDataReaderFactory; }; template struct consume_Windows_Storage_Streams_IDataReaderStatics { auto FromBuffer(winrt::Windows::Storage::Streams::IBuffer const& buffer) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IDataReaderStatics; }; template struct consume_Windows_Storage_Streams_IDataWriter { [[nodiscard]] auto UnstoredBufferLength() const; [[nodiscard]] auto UnicodeEncoding() const; auto UnicodeEncoding(winrt::Windows::Storage::Streams::UnicodeEncoding const& value) const; [[nodiscard]] auto ByteOrder() const; auto ByteOrder(winrt::Windows::Storage::Streams::ByteOrder const& value) const; auto WriteByte(uint8_t value) const; auto WriteBytes(array_view value) const; auto WriteBuffer(winrt::Windows::Storage::Streams::IBuffer const& buffer) const; auto WriteBuffer(winrt::Windows::Storage::Streams::IBuffer const& buffer, uint32_t start, uint32_t count) const; auto WriteBoolean(bool value) const; auto WriteGuid(winrt::guid const& value) const; auto WriteInt16(int16_t value) const; auto WriteInt32(int32_t value) const; auto WriteInt64(int64_t value) const; auto WriteUInt16(uint16_t value) const; auto WriteUInt32(uint32_t value) const; auto WriteUInt64(uint64_t value) const; auto WriteSingle(float value) const; auto WriteDouble(double value) const; auto WriteDateTime(winrt::Windows::Foundation::DateTime const& value) const; auto WriteTimeSpan(winrt::Windows::Foundation::TimeSpan const& value) const; auto WriteString(param::hstring const& value) const; auto MeasureString(param::hstring const& value) const; auto StoreAsync() const; auto FlushAsync() const; auto DetachBuffer() const; auto DetachStream() const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IDataWriter; }; template struct consume_Windows_Storage_Streams_IDataWriterFactory { auto CreateDataWriter(winrt::Windows::Storage::Streams::IOutputStream const& outputStream) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IDataWriterFactory; }; template struct consume_Windows_Storage_Streams_IFileRandomAccessStreamStatics { auto OpenAsync(param::hstring const& filePath, winrt::Windows::Storage::FileAccessMode const& accessMode) const; auto OpenAsync(param::hstring const& filePath, winrt::Windows::Storage::FileAccessMode const& accessMode, winrt::Windows::Storage::StorageOpenOptions const& sharingOptions, winrt::Windows::Storage::Streams::FileOpenDisposition const& openDisposition) const; auto OpenTransactedWriteAsync(param::hstring const& filePath) const; auto OpenTransactedWriteAsync(param::hstring const& filePath, winrt::Windows::Storage::StorageOpenOptions const& openOptions, winrt::Windows::Storage::Streams::FileOpenDisposition const& openDisposition) const; auto OpenForUserAsync(winrt::Windows::System::User const& user, param::hstring const& filePath, winrt::Windows::Storage::FileAccessMode const& accessMode) const; auto OpenForUserAsync(winrt::Windows::System::User const& user, param::hstring const& filePath, winrt::Windows::Storage::FileAccessMode const& accessMode, winrt::Windows::Storage::StorageOpenOptions const& sharingOptions, winrt::Windows::Storage::Streams::FileOpenDisposition const& openDisposition) const; auto OpenTransactedWriteForUserAsync(winrt::Windows::System::User const& user, param::hstring const& filePath) const; auto OpenTransactedWriteForUserAsync(winrt::Windows::System::User const& user, param::hstring const& filePath, winrt::Windows::Storage::StorageOpenOptions const& openOptions, winrt::Windows::Storage::Streams::FileOpenDisposition const& openDisposition) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IFileRandomAccessStreamStatics; }; template struct consume_Windows_Storage_Streams_IInputStream { auto ReadAsync(winrt::Windows::Storage::Streams::IBuffer const& buffer, uint32_t count, winrt::Windows::Storage::Streams::InputStreamOptions const& options) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IInputStream; }; template struct consume_Windows_Storage_Streams_IInputStreamReference { auto OpenSequentialReadAsync() const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IInputStreamReference; }; template struct consume_Windows_Storage_Streams_IOutputStream { auto WriteAsync(winrt::Windows::Storage::Streams::IBuffer const& buffer) const; auto FlushAsync() const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IOutputStream; }; template struct consume_Windows_Storage_Streams_IPropertySetSerializer { auto Serialize(winrt::Windows::Foundation::Collections::IPropertySet const& propertySet) const; auto Deserialize(winrt::Windows::Foundation::Collections::IPropertySet const& propertySet, winrt::Windows::Storage::Streams::IBuffer const& buffer) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IPropertySetSerializer; }; template struct consume_Windows_Storage_Streams_IRandomAccessStream { [[nodiscard]] auto Size() const; auto Size(uint64_t value) const; auto GetInputStreamAt(uint64_t position) const; auto GetOutputStreamAt(uint64_t position) const; [[nodiscard]] auto Position() const; auto Seek(uint64_t position) const; auto CloneStream() const; [[nodiscard]] auto CanRead() const; [[nodiscard]] auto CanWrite() const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IRandomAccessStream; }; template struct consume_Windows_Storage_Streams_IRandomAccessStreamReference { auto OpenReadAsync() const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IRandomAccessStreamReference; }; template struct consume_Windows_Storage_Streams_IRandomAccessStreamReferenceStatics { auto CreateFromFile(winrt::Windows::Storage::IStorageFile const& file) const; auto CreateFromUri(winrt::Windows::Foundation::Uri const& uri) const; auto CreateFromStream(winrt::Windows::Storage::Streams::IRandomAccessStream const& stream) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IRandomAccessStreamReferenceStatics; }; template struct consume_Windows_Storage_Streams_IRandomAccessStreamStatics { auto CopyAsync(winrt::Windows::Storage::Streams::IInputStream const& source, winrt::Windows::Storage::Streams::IOutputStream const& destination) const; auto CopyAsync(winrt::Windows::Storage::Streams::IInputStream const& source, winrt::Windows::Storage::Streams::IOutputStream const& destination, uint64_t bytesToCopy) const; auto CopyAndCloseAsync(winrt::Windows::Storage::Streams::IInputStream const& source, winrt::Windows::Storage::Streams::IOutputStream const& destination) const; }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IRandomAccessStreamStatics; }; template struct consume_Windows_Storage_Streams_IRandomAccessStreamWithContentType { }; template <> struct consume { template using type = consume_Windows_Storage_Streams_IRandomAccessStreamWithContentType; }; } #endif