From 65a91ebaa376565318d3d4168c16ef24161cedc9 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Tue, 26 Apr 2022 09:34:12 +0530 Subject: [PATCH] include: Add Windows.Storage.Streams.Buffer runtimeclass declaration. Signed-off-by: Biswapriyo Nath --- include/windows.storage.streams.idl | 51 +++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/include/windows.storage.streams.idl b/include/windows.storage.streams.idl index 59b1576..5e92ce9 100644 --- a/include/windows.storage.streams.idl +++ b/include/windows.storage.streams.idl @@ -38,11 +38,15 @@ namespace Windows { namespace Streams { + interface IBuffer; + interface IBufferFactory; + interface IBufferStatics; interface IContentTypeProvider; interface IInputStream; interface IOutputStream; interface IRandomAccessStream; interface IRandomAccessStreamWithContentType; + runtimeclass Buffer; } } } @@ -53,6 +57,41 @@ namespace Windows { namespace Streams { + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(905a0fe0-bc53-11df-8c49-001e4fc686da) + ] + interface IBuffer : IInspectable + { + [propget] HRESULT Capacity([out, retval] UINT32 *value); + [propget] HRESULT Length([out, retval] UINT32 *value); + [propput] HRESULT Length([in] UINT32 value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.Streams.Buffer), + uuid(71af914d-c10f-484b-bc50-14bc623b3a27) + ] + interface IBufferFactory : IInspectable + { + HRESULT Create([in, range(0x00000000, 0x7fffffff)] UINT32 capacity, + [out, retval] Windows.Storage.Streams.Buffer **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.Streams.Buffer), + uuid(e901e65b-d716-475a-a90a-af7229b1e741) + ] + interface IBufferStatics : IInspectable + { + HRESULT CreateCopyFromMemoryBuffer([in] Windows.Foundation.IMemoryBuffer *input, + [out, retval] Windows.Storage.Streams.Buffer **value); + HRESULT CreateMemoryBufferOverIBuffer([in] Windows.Storage.Streams.IBuffer *input, + [out, retval] Windows.Foundation.MemoryBuffer **value); + } + [ uuid(cc254827-4b3d-438f-9232-10c76bc7e038), ] @@ -65,6 +104,18 @@ namespace Windows Windows.Storage.Streams.IContentTypeProvider { } + + [ + activatable(Windows.Storage.Streams.IBufferFactory, Windows.Foundation.UniversalApiContract, 1.0), + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.Storage.Streams.IBufferStatics, Windows.Foundation.UniversalApiContract, 1.0), + threading(both) + ] + runtimeclass Buffer + { + [default] interface Windows.Storage.Streams.IBuffer; + } } } } -- 2.35.3