| /* |
| * Copyright 2021 Jactry Zeng for CodeWeavers |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #ifdef __WIDL__ |
| #pragma winrt ns_prefix |
| #endif |
| |
| #ifndef DO_NO_IMPORTS |
| import "inspectable.idl"; |
| import "eventtoken.idl"; |
| import "windows.foundation.idl"; |
| #endif |
| |
| namespace Windows.Storage { |
| interface IStorageFile; |
| } |
| |
| 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; |
| interface IRandomAccessStream; |
| interface IRandomAccessStreamReference; |
| interface IRandomAccessStreamReferenceStatics; |
| interface IRandomAccessStreamStatics; |
| interface IRandomAccessStreamWithContentType; |
| runtimeclass Buffer; |
| runtimeclass DataWriter; |
| runtimeclass DataWriterStoreOperation; |
| #ifndef _WINTYPES |
| runtimeclass InMemoryRandomAccessStream; |
| runtimeclass RandomAccessStream; |
| runtimeclass RandomAccessStreamReference; |
| #endif |
| |
| declare { |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IBuffer *>; |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IOutputStream *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IOutputStream *>; |
| #ifndef _WINTYPES |
| interface Windows.Foundation.Collections.IIterable<Windows.Storage.Streams.IRandomAccessStream *>; |
| interface Windows.Foundation.Collections.IIterator<Windows.Storage.Streams.IRandomAccessStream *>; |
| interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.Streams.RandomAccessStreamReference *>; |
| interface Windows.Foundation.Collections.IMap<HSTRING, Windows.Storage.Streams.RandomAccessStreamReference *>; |
| interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Streams.IRandomAccessStream *>; |
| interface Windows.Foundation.Collections.IVector<Windows.Storage.Streams.IRandomAccessStream *>; |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.Streams.RandomAccessStreamReference *> *>; |
| 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.AsyncOperationCompletedHandler<Windows.Storage.Streams.RandomAccessStreamReference *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.Streams.RandomAccessStreamReference *> *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStreamReference *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStreamWithContentType *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.RandomAccessStreamReference *>; |
| #endif |
| } |
| |
| [ |
| 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) |
| ] |
| 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); |
| } |
| |
| [ |
| 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(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); |
| } |
| |
| #ifndef _WINTYPES |
| [ |
| 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); |
| } |
| |
| [ |
| 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), |
| 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), |
| ] |
| interface IRandomAccessStreamWithContentType : IInspectable |
| requires |
| Windows.Storage.Streams.IRandomAccessStream, |
| Windows.Foundation.IClosable, |
| Windows.Storage.Streams.IInputStream, |
| Windows.Storage.Streams.IOutputStream, |
| Windows.Storage.Streams.IContentTypeProvider |
| { |
| } |
| #endif |
| |
| #ifndef _WINDOWS_STORAGE |
| [ |
| 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; |
| } |
| |
| [ |
| 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>; |
| } |
| #endif |
| |
| #ifndef _WINTYPES |
| [ |
| activatable(Windows.Foundation.UniversalApiContract, 1.0), |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| marshaling_behavior(agile) |
| ] |
| runtimeclass InMemoryRandomAccessStream |
| { |
| [default] interface Windows.Storage.Streams.IRandomAccessStream; |
| interface Windows.Storage.Streams.IOutputStream; |
| interface Windows.Foundation.IClosable; |
| interface Windows.Storage.Streams.IInputStream; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| marshaling_behavior(agile), |
| static(Windows.Storage.Streams.IRandomAccessStreamStatics, Windows.Foundation.UniversalApiContract, 1.0) |
| ] |
| runtimeclass RandomAccessStream |
| { |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| marshaling_behavior(agile), |
| static(Windows.Storage.Streams.IRandomAccessStreamReferenceStatics, Windows.Foundation.UniversalApiContract, 1.0) |
| ] |
| runtimeclass RandomAccessStreamReference |
| { |
| [default] interface Windows.Storage.Streams.IRandomAccessStreamReference; |
| } |
| #endif |
| |
| } |