From 8c50a9508ccb8f10b7e4d7bb1a7c4c5eaca61f2d Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Mon, 25 Apr 2022 11:00:40 +0200 Subject: [PATCH] include: Add Windows.Foundation.MemoryBuffer runtimeclass declaration. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Biswapriyo Nath Signed-off-by: RĂ©mi Bernon Signed-off-by: Alexandre Julliard --- include/windows.foundation.idl | 53 +++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl index 08a6af4ea7b..cdc603f8e84 100644 --- a/include/windows.foundation.idl +++ b/include/windows.foundation.idl @@ -23,7 +23,7 @@ import "inspectable.idl"; import "asyncinfo.idl"; import "windowscontracts.idl"; -/* import "eventtoken.idl"; */ +import "eventtoken.idl"; /* import "ivectorchangedeventargs.idl"; */ import "windows.foundation.collections.idl"; @@ -36,7 +36,11 @@ namespace Windows.Foundation { typedef struct TimeSpan TimeSpan; interface IAsyncAction; interface IClosable; + interface IMemoryBuffer; + interface IMemoryBufferFactory; + interface IMemoryBufferReference; interface IStringable; + runtimeclass MemoryBuffer; declare { interface Windows.Foundation.Collections.IIterable; @@ -55,6 +59,7 @@ namespace Windows.Foundation { interface Windows.Foundation.IAsyncOperation; interface Windows.Foundation.IReference; interface Windows.Foundation.TypedEventHandler; + interface Windows.Foundation.TypedEventHandler; } [ @@ -173,4 +178,50 @@ namespace Windows.Foundation { [propget] HRESULT Completed([out, retval] Windows.Foundation.AsyncActionCompletedHandler **handler); HRESULT GetResults(); } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(fbc4dd2a-245b-11e4-af98-689423260cf8) + ] + interface IMemoryBuffer : IInspectable + requires Windows.Foundation.IClosable + { + HRESULT CreateReference([out, retval] Windows.Foundation.IMemoryBufferReference **reference); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Foundation.MemoryBuffer), + uuid(fbc4dd2b-245b-11e4-af98-689423260cf8) + ] + interface IMemoryBufferFactory : IInspectable + { + HRESULT Create([in, range(0x00000000, 0x7fffffff)] UINT32 capacity, + [out, retval] Windows.Foundation.MemoryBuffer **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(fbc4dd29-245b-11e4-af98-689423260cf8) + ] + interface IMemoryBufferReference : IInspectable + requires Windows.Foundation.IClosable + { + [propget] HRESULT Capacity([out, retval] UINT32 *value); + [eventadd] HRESULT Closed([in] Windows.Foundation.TypedEventHandler *handler, + [out, retval] EventRegistrationToken *cookie); + [eventremove] HRESULT Closed([in] EventRegistrationToken cookie); + } + + [ + activatable(Windows.Foundation.IMemoryBufferFactory, Windows.Foundation.UniversalApiContract, 1.0), + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass MemoryBuffer + { + [default] interface Windows.Foundation.IMemoryBuffer; + interface Windows.Foundation.IClosable; + } }