[PATCH v5 0/4] MR6592: include: Add DataWriter runtimeclass in windows.storage.streams.idl.
Required for https://github.com/mozilla/gecko-dev/blob/1b90936792b2c71ef931cb1b8d6baff9d8... -- v5: include: Add IOutputStream in windows.storage.streams.idl. https://gitlab.winehq.org/wine/wine/-/merge_requests/6592
From: Biswapriyo Nath <nathbappai(a)gmail.com> Required for https://github.com/mozilla/gecko-dev/blob/1b90936792b2c71ef931cb1b8d6baff9d8... --- include/windows.storage.streams.idl | 94 +++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/include/windows.storage.streams.idl b/include/windows.storage.streams.idl index cc58a037f13..372b4cee591 100644 --- a/include/windows.storage.streams.idl +++ b/include/windows.storage.streams.idl @@ -25,10 +25,14 @@ import "eventtoken.idl"; import "windows.foundation.idl"; namespace Windows.Storage.Streams { + typedef enum ByteOrder ByteOrder; + typedef enum UnicodeEncoding UnicodeEncoding; interface IBuffer; interface IBufferFactory; interface IBufferStatics; interface IContentTypeProvider; + interface IDataWriter; + interface IDataWriterFactory; interface IInputStream; interface IInputStreamReference; interface IOutputStream; @@ -38,6 +42,8 @@ namespace Windows.Storage.Streams { interface IRandomAccessStreamStatics; interface IRandomAccessStreamWithContentType; runtimeclass Buffer; + runtimeclass DataWriter; + runtimeclass DataWriterStoreOperation; runtimeclass InMemoryRandomAccessStream; runtimeclass RandomAccessStream; runtimeclass RandomAccessStreamReference; @@ -53,6 +59,25 @@ namespace Windows.Storage.Streams { interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream *>; } + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum ByteOrder + { + LittleEndian = 0, + BigEndian = 1, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum UnicodeEncoding + { + Utf8 = 0, + Utf16LE = 1, + Utf16BE = 2, + }; + [ contract(Windows.Foundation.UniversalApiContract, 1.0), uuid(905a0fe0-bc53-11df-8c49-001e4fc686da) @@ -88,6 +113,53 @@ namespace Windows.Storage.Streams { [out, retval] Windows.Foundation.MemoryBuffer **value); } + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(64b89265-d341-4922-b38a-dd4af8808c4e) + ] + interface IDataWriter : IInspectable + { + [propget] HRESULT UnstoredBufferLength([out, retval] UINT32 *value); + [propget] HRESULT UnicodeEncoding([out, retval] Windows.Storage.Streams.UnicodeEncoding *value); + [propput] HRESULT UnicodeEncoding([in] Windows.Storage.Streams.UnicodeEncoding value); + [propget] HRESULT ByteOrder([out, retval] Windows.Storage.Streams.ByteOrder *value); + [propput] HRESULT ByteOrder([in] Windows.Storage.Streams.ByteOrder value); + HRESULT WriteByte([in] BYTE value); + HRESULT WriteBytes([in] UINT32 value_size, [in, size_is(value_size)] BYTE *value); + [overload("WriteBuffer")] HRESULT WriteBuffer([in] Windows.Storage.Streams.IBuffer *buffer); + [overload("WriteBuffer")] HRESULT WriteBufferRange([in] Windows.Storage.Streams.IBuffer *buffer, [in] UINT32 start, [in] UINT32 count); + HRESULT WriteBoolean([in] boolean value); + HRESULT WriteGuid([in] GUID value); + HRESULT WriteInt16([in] INT16 value); + HRESULT WriteInt32([in] INT32 value); + HRESULT WriteInt64([in] INT64 value); + HRESULT WriteUInt16([in] UINT16 value); + HRESULT WriteUInt32([in] UINT32 value); + HRESULT WriteUInt64([in] UINT64 value); + HRESULT WriteSingle([in] FLOAT value); + HRESULT WriteDouble([in] DOUBLE value); + HRESULT WriteDateTime([in] Windows.Foundation.DateTime value); + HRESULT WriteTimeSpan([in] Windows.Foundation.TimeSpan value); + HRESULT WriteString([in] HSTRING value, [out, retval] UINT32 *code_unit_count); + HRESULT MeasureString([in] HSTRING value, [out, retval] UINT32 *code_unit_count); + HRESULT StoreAsync([out, retval] Windows.Storage.Streams.DataWriterStoreOperation **operation); + HRESULT FlushAsync([out, retval] Windows.Foundation.IAsyncOperation<boolean> **operation); + HRESULT DetachBuffer([out, retval] Windows.Storage.Streams.IBuffer **buffer); + HRESULT DetachStream([out, retval] Windows.Storage.Streams.IOutputStream **output_stream); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.Streams.DataWriter), + uuid(338c67c2-8b84-4c2b-9c50-7b8767847a1f) + ] + interface IDataWriterFactory : IInspectable + { + HRESULT CreateDataWriter( + [in] Windows.Storage.Streams.IOutputStream *output_stream, + [out, retval] Windows.Storage.Streams.DataWriter **data_writer); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), uuid(905a0fe1-bc53-11df-8c49-001e4fc686da), @@ -155,6 +227,28 @@ namespace Windows.Storage.Streams { [default] interface Windows.Storage.Streams.IBuffer; } + [ + activatable(Windows.Foundation.UniversalApiContract, 1.0), + activatable(Windows.Storage.Streams.IDataWriterFactory, Windows.Foundation.UniversalApiContract, 1.0), + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass DataWriter + { + [default] interface Windows.Storage.Streams.IDataWriter; + interface Windows.Foundation.IClosable; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass DataWriterStoreOperation + { + [default] interface Windows.Foundation.IAsyncOperation<UINT32>; + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6592
From: Biswapriyo Nath <nathbappai(a)gmail.com> Required for https://github.com/mozilla/gecko-dev/blob/1b90936792b2c71ef931cb1b8d6baff9d8... --- include/windows.storage.streams.idl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/windows.storage.streams.idl b/include/windows.storage.streams.idl index 372b4cee591..54c7140e056 100644 --- a/include/windows.storage.streams.idl +++ b/include/windows.storage.streams.idl @@ -24,6 +24,10 @@ import "inspectable.idl"; import "eventtoken.idl"; import "windows.foundation.idl"; +namespace Windows.Storage { + interface IStorageFile; +} + namespace Windows.Storage.Streams { typedef enum ByteOrder ByteOrder; typedef enum UnicodeEncoding UnicodeEncoding; @@ -180,6 +184,24 @@ namespace Windows.Storage.Streams { [propget] HRESULT CanWrite([out, retval] boolean *value); } + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.Streams.RandomAccessStreamReference), + uuid(857309dc-3fbf-4e7d-986f-ef3b1a07a964) + ] + interface IRandomAccessStreamReferenceStatics : IInspectable + { + HRESULT CreateFromFile( + [in] Windows.Storage.IStorageFile *file, + [out, retval] Windows.Storage.Streams.RandomAccessStreamReference **stream_reference); + HRESULT CreateFromUri( + [in] Windows.Foundation.Uri *uri, + [out, retval] Windows.Storage.Streams.RandomAccessStreamReference **stream_reference); + HRESULT CreateFromStream( + [in] Windows.Storage.Streams.IRandomAccessStream *stream, + [out, retval] Windows.Storage.Streams.RandomAccessStreamReference **stream_reference); + } + [ uuid(cc254827-4b3d-438f-9232-10c76bc7e038), ] -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6592
From: Biswapriyo Nath <nathbappai(a)gmail.com> --- include/windows.storage.streams.idl | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/windows.storage.streams.idl b/include/windows.storage.streams.idl index 54c7140e056..5529a56dcf2 100644 --- a/include/windows.storage.streams.idl +++ b/include/windows.storage.streams.idl @@ -59,8 +59,12 @@ namespace Windows.Storage.Streams { interface Windows.Foundation.Collections.IVector<Windows.Storage.Streams.IRandomAccessStream *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IBuffer *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IRandomAccessStream *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IRandomAccessStreamReference *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IRandomAccessStreamWithContentType *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStreamReference *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStreamWithContentType *>; } [ @@ -184,6 +188,15 @@ namespace Windows.Storage.Streams { [propget] HRESULT CanWrite([out, retval] boolean *value); } + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(33ee3134-1dd6-4e3a-8067-d1c162e8642b) + ] + interface IRandomAccessStreamReference : IInspectable + { + HRESULT OpenReadAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStreamWithContentType *> **operation); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.Storage.Streams.RandomAccessStreamReference), -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6592
From: Biswapriyo Nath <nathbappai(a)gmail.com> Required for https://github.com/mozilla/gecko-dev/blob/7e0ae4372c52b8183d1178132dd6493edb... --- include/windows.foundation.idl | 3 +++ include/windows.storage.streams.idl | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl index 0ac0f78fa5e..0059ad4aabb 100644 --- a/include/windows.foundation.idl +++ b/include/windows.foundation.idl @@ -104,9 +104,12 @@ namespace Windows.Foundation { interface Windows.Foundation.AsyncOperationCompletedHandler<IInspectable *>; interface Windows.Foundation.AsyncOperationCompletedHandler<boolean>; interface Windows.Foundation.AsyncOperationCompletedHandler<UINT32>; + interface Windows.Foundation.AsyncOperationProgressHandler<UINT32, UINT32>; + interface Windows.Foundation.AsyncOperationWithProgressCompletedHandler<UINT32, UINT32>; interface Windows.Foundation.IAsyncOperation<IInspectable *>; interface Windows.Foundation.IAsyncOperation<boolean>; interface Windows.Foundation.IAsyncOperation<UINT32>; + interface Windows.Foundation.IAsyncOperationWithProgress<UINT32, UINT32>; interface Windows.Foundation.IReference<BYTE>; interface Windows.Foundation.IReference<INT32>; interface Windows.Foundation.IReference<DOUBLE>; diff --git a/include/windows.storage.streams.idl b/include/windows.storage.streams.idl index 5529a56dcf2..b3cb8dbe20f 100644 --- a/include/windows.storage.streams.idl +++ b/include/windows.storage.streams.idl @@ -58,10 +58,12 @@ namespace Windows.Storage.Streams { interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Streams.IRandomAccessStream *>; interface Windows.Foundation.Collections.IVector<Windows.Storage.Streams.IRandomAccessStream *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IBuffer *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IOutputStream *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IRandomAccessStream *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IRandomAccessStreamReference *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IRandomAccessStreamWithContentType *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IOutputStream *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStreamReference *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStreamWithContentType *>; @@ -168,6 +170,19 @@ namespace Windows.Storage.Streams { [out, retval] Windows.Storage.Streams.DataWriter **data_writer); } + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(905a0fe6-bc53-11df-8c49-001e4fc686da) + ] + interface IOutputStream : IInspectable + requires Windows.Foundation.IClosable + { + HRESULT WriteAsync( + [in] Windows.Storage.Streams.IBuffer *buffer, + [out, retval] Windows.Foundation.IAsyncOperationWithProgress<UINT32, UINT32> **operation); + HRESULT FlushAsync([out, retval] Windows.Foundation.IAsyncOperation<boolean> **operation); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), uuid(905a0fe1-bc53-11df-8c49-001e4fc686da), -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6592
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=148848 Your paranoid android. === debian11 (build log) === error: patch failed: include/windows.foundation.idl:104 Task: Patch failed to apply === debian11b (build log) === error: patch failed: include/windows.foundation.idl:104 Task: Patch failed to apply
On Thu Oct 3 04:52:19 2024 +0000, Biswapriyo Nath wrote:
changed this line in [version 5 of the diff](/wine/wine/-/merge_requests/6592/diffs?diff_id=135925&start_sha=9f45fdfe4c9aeffe452bdba08ca88ac25f2137ca#33f8834c5979a18b2ebe2e1434a0c38b64d8c023_107_107) Thanks.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/6592#note_83987
This merge request was approved by Rémi Bernon. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6592
participants (4)
-
Biswapriyo Nath -
Biswapriyo Nath (@Biswa96) -
Marvin -
Rémi Bernon