[PATCH v2 2/2] include: Add Windows.Storage.Streams.Buffer runtimeclass declaration.

Rémi Bernon rbernon at codeweavers.com
Thu Apr 28 07:20:35 CDT 2022


From: Biswapriyo Nath <nathbappai at gmail.com>

Signed-off-by: Biswapriyo Nath <nathbappai at gmail.com>
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 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 ba58e74687d..bb107b25976 100644
--- a/include/windows.storage.streams.idl
+++ b/include/windows.storage.streams.idl
@@ -25,11 +25,50 @@ import "eventtoken.idl";
 import "windows.foundation.idl";
 
 namespace Windows.Storage.Streams {
+    interface IBuffer;
+    interface IBufferFactory;
+    interface IBufferStatics;
     interface IContentTypeProvider;
     interface IInputStream;
     interface IOutputStream;
     interface IRandomAccessStream;
     interface IRandomAccessStreamWithContentType;
+    runtimeclass Buffer;
+
+    [
+        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),
@@ -43,4 +82,16 @@ namespace Windows.Storage.Streams {
             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.1




More information about the wine-devel mailing list