From: Mohamad Al-Jaf mohamadaljaf@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),