From: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com> Needed by IStorageFile. --- include/windows.storage.streams.idl | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/include/windows.storage.streams.idl b/include/windows.storage.streams.idl index 9255fb43ff3..bcbdf588ec6 100644 --- a/include/windows.storage.streams.idl +++ b/include/windows.storage.streams.idl @@ -30,14 +30,19 @@ namespace Windows.Storage.Streams { interface IBufferStatics; interface IContentTypeProvider; interface IInputStream; + interface IInputStreamReference; interface IOutputStream; interface IRandomAccessStream; + interface IRandomAccessStreamReference; + interface IRandomAccessStreamStatics; interface IRandomAccessStreamWithContentType; runtimeclass Buffer; declare { interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IBuffer *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IRandomAccessStream *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream *>; } [ @@ -75,6 +80,26 @@ namespace Windows.Storage.Streams { [out, retval] Windows.Foundation.MemoryBuffer **value); } + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(905a0fe1-bc53-11df-8c49-001e4fc686da), + ] + interface IRandomAccessStream : IInspectable + requires Windows.Foundation.IClosable, + Windows.Storage.Streams.IInputStream, + Windows.Storage.Streams.IOutputStream + { + [propget] HRESULT Size([out, retval] UINT64 *value); + [propput] HRESULT Size([in] UINT64 value); + HRESULT GetInputStreamAt([in] UINT64 position, [out, retval] Windows.Storage.Streams.IInputStream **stream); + HRESULT GetOutputStreamAt([in] UINT64 position, [out, retval] Windows.Storage.Streams.IOutputStream **stream); + [propget] HRESULT Position([out, retval] UINT64 *value); + HRESULT Seek([in] UINT64 position); + HRESULT CloneStream([out, retval] Windows.Storage.Streams.IRandomAccessStream **stream); + [propget] HRESULT CanRead([out, retval] boolean *value); + [propget] HRESULT CanWrite([out, retval] boolean *value); + } + [ uuid(cc254827-4b3d-438f-9232-10c76bc7e038), ] @@ -88,6 +113,15 @@ namespace Windows.Storage.Streams { { } + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.Storage.Streams.IRandomAccessStreamStatics, Windows.Foundation.UniversalApiContract, 1.0) + ] + runtimeclass RandomAccessStream + { + } + [ activatable(Windows.Storage.Streams.IBufferFactory, Windows.Foundation.UniversalApiContract, 1.0), contract(Windows.Foundation.UniversalApiContract, 1.0), -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3552