Required for https://github.com/mozilla/gecko-dev/blob/1b90936792b2c71ef931cb1b8d6baff9d8...
-- v2: include: Add IRandomAccessStreamReferenceStatics in windows.storage.streams.idl.
From: Biswapriyo Nath nathbappai@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),
From: Biswapriyo Nath nathbappai@gmail.com
Required for https://github.com/mozilla/gecko-dev/blob/1b90936792b2c71ef931cb1b8d6baff9d8... --- include/windows.storage.streams.idl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/include/windows.storage.streams.idl b/include/windows.storage.streams.idl index 372b4cee591..02ed530ad15 100644 --- a/include/windows.storage.streams.idl +++ b/include/windows.storage.streams.idl @@ -23,6 +23,7 @@ import "inspectable.idl"; import "eventtoken.idl"; import "windows.foundation.idl"; +import "windows.storage.idl";
namespace Windows.Storage.Streams { typedef enum ByteOrder ByteOrder; @@ -180,6 +181,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), ]
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=148804
Your paranoid android.
=== debian11 (build log) ===
../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' Task: The win32 Wine build failed
=== debian11b (build log) ===
../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.streams.idl:192:46: error: type 'IStorageFile' not found in Storage namespace ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' ../wine/include/windows.storage.idl:468:34: error: namespace 'Streams' not found in 'Storage' Task: The wow64 Wine build failed
@rbernon Please review the second commit which has the cyclic included header.
Rémi Bernon (@rbernon) commented about include/windows.storage.streams.idl:
import "inspectable.idl"; import "eventtoken.idl"; import "windows.foundation.idl"; +import "windows.storage.idl";
```suggestion:-0+0
namespace Windows.Storage { interface IStorageFile; } ```
Seems to be enough for this to build. Then if we later need to pull this in, it can still work with more forward declarations in it but it would also need a couple of changes because of windows.storage.applicationdata classes.idl includes.