From: Mohamad Al-Jaf mohamadaljaf@gmail.com
--- include/windows.applicationmodel.idl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/include/windows.applicationmodel.idl b/include/windows.applicationmodel.idl index cea2c9423d8..9514c06a60e 100644 --- a/include/windows.applicationmodel.idl +++ b/include/windows.applicationmodel.idl @@ -93,6 +93,16 @@ namespace Windows.ApplicationModel { [propget] HRESULT Author([out, retval] HSTRING *value); }
+ [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.ApplicationModel.Package), + uuid(4e534bdf-2960-4878-97a4-9624deb72f2d) + ] + interface IPackageStatics : IInspectable + { + [propget] HRESULT Current([out, retval] Windows.ApplicationModel.Package **value); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), @@ -102,6 +112,14 @@ namespace Windows.ApplicationModel { runtimeclass Package { [default] interface Windows.ApplicationModel.IPackage; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.IPackage2; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.IPackage3; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.IPackageWithMetadata; + [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.ApplicationModel.IPackage4; + [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.IPackage5; + [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.ApplicationModel.IPackage6; + [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.ApplicationModel.IPackage7; + [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.ApplicationModel.IPackage8; }
[
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),
From: Mohamad Al-Jaf mohamadaljaf@gmail.com
Needed by IStorageFolder. --- include/windows.storage.idl | 135 ++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+)
diff --git a/include/windows.storage.idl b/include/windows.storage.idl index de918ddc104..aa050040640 100644 --- a/include/windows.storage.idl +++ b/include/windows.storage.idl @@ -20,13 +20,139 @@ #pragma winrt ns_prefix #endif
+import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; import "windows.foundation.idl"; +/* import "windows.storage.fileproperties.idl"; */ +/* import "windows.storage.provider.idl"; */ +/* import "windows.storage.search.idl"; */ +import "windows.storage.streams.idl"; +import "windows.system.idl";
namespace Windows.Storage { + typedef enum FileAccessMode FileAccessMode; + typedef enum NameCollisionOption NameCollisionOption; + interface IStorageFolder; interface IStorageFolderStatics; + interface IStorageFolderStatics2; + interface IStorageFileStatics; + interface IStorageFileStatics2; + interface IStorageItem;
runtimeclass StorageFolder; + runtimeclass StorageFile; + runtimeclass StorageStreamTransaction; + + declare { + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.StorageFile *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.StorageStreamTransaction *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.StorageStreamTransaction *>; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum FileAccessMode + { + Read = 0, + ReadWrite = 1, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum NameCollisionOption + { + GenerateUniqueName = 0, + ReplaceExisting = 1, + FailIfExists = 2, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(fa3f6186-4214-428c-a64c-14c9ac7315ea) + ] + interface IStorageFile : IInspectable + requires Windows.Storage.IStorageItem, + Windows.Storage.Streams.IRandomAccessStreamReference, + Windows.Storage.Streams.IInputStreamReference + { + [propget] HRESULT FileType([out, retval] HSTRING *value); + [propget] HRESULT ContentType([out, retval] HSTRING *value); + HRESULT OpenAsync( + [in] Windows.Storage.FileAccessMode mode, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream *> **operation + ); + HRESULT OpenTransactedWriteAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageStreamTransaction *> **operation); + [overload("CopyAsync")] + HRESULT CopyOverloadDefaultNameAndOptions( + [in] Windows.Storage.IStorageFolder *folder, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile *> **operation + ); + [overload("CopyAsync")] + HRESULT CopyOverloadDefaultOptions( + [in] Windows.Storage.IStorageFolder *folder, + [in] HSTRING name, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile *> **operation); + [overload("CopyAsync")] + HRESULT CopyOverload( + [in] Windows.Storage.IStorageFolder *folder, + [in] HSTRING name, + [in] Windows.Storage.NameCollisionOption option, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile *> **operation + ); + HRESULT CopyAndReplaceAsync([in] Windows.Storage.IStorageFile *file, [out, retval] Windows.Foundation.IAsyncAction **operation); + [overload("MoveAsync")] + HRESULT MoveOverloadDefaultNameAndOptions([in] Windows.Storage.IStorageFolder *folder, [out, retval] Windows.Foundation.IAsyncAction **operation); + [overload("MoveAsync")] + HRESULT MoveOverloadDefaultOptions( + [in] Windows.Storage.IStorageFolder *folder, + [in] HSTRING name, + [out, retval] Windows.Foundation.IAsyncAction **operation + ); + [overload("MoveAsync")] + HRESULT MoveOverload( + [in] Windows.Storage.IStorageFolder *folder, + [in] HSTRING name, + [in] Windows.Storage.NameCollisionOption option, + [out, retval] Windows.Foundation.IAsyncAction **operation); + HRESULT MoveAndReplaceAsync([in] Windows.Storage.IStorageFile *file, [out, retval] Windows.Foundation.IAsyncAction **operation); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.StorageStreamTransaction), + uuid(f67cf363-a53d-4d94-ae2c-67232d93acdd) + ] + interface IStorageStreamTransaction : IInspectable + requires Windows.Foundation.IClosable + { + [propget] HRESULT Stream([out, retval] Windows.Storage.Streams.IRandomAccessStream **value); + HRESULT CommitAsync([out, retval] Windows.Foundation.IAsyncAction **operation); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.Storage.IStorageFileStatics, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.Storage.IStorageFileStatics2, Windows.Foundation.UniversalApiContract, 10.0) + ] + runtimeclass StorageFile + { + [default] interface Windows.Storage.IStorageFile; + interface Windows.Storage.Streams.IInputStreamReference; + interface Windows.Storage.Streams.IRandomAccessStreamReference; + interface Windows.Storage.IStorageItem; + interface Windows.Storage.IStorageItemProperties; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IStorageItemProperties2; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IStorageItem2; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IStorageItemPropertiesWithProvider; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IStorageFilePropertiesWithAvailability; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IStorageFile2; + }
[ contract(Windows.Foundation.UniversalApiContract, 1.0), @@ -36,4 +162,13 @@ namespace Windows.Storage { { [default] interface Windows.Storage.IStorageFolder; } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + runtimeclass StorageStreamTransaction + { + [default] interface Windows.Storage.IStorageStreamTransaction; + interface Windows.Foundation.IClosable; + } }
From: Mohamad Al-Jaf mohamadaljaf@gmail.com
Needed by IStorageItem. --- include/Makefile.in | 1 + include/windows.storage.fileproperties.idl | 62 ++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 include/windows.storage.fileproperties.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 96f79518c2e..a1908b42137 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -845,6 +845,7 @@ SOURCES = \ windows.security.credentials.idl \ windows.security.cryptography.idl \ windows.security.isolation.idl \ + windows.storage.fileproperties.idl \ windows.storage.idl \ windows.storage.streams.idl \ windows.system.idl \ diff --git a/include/windows.storage.fileproperties.idl b/include/windows.storage.fileproperties.idl new file mode 100644 index 00000000000..9426d02fefb --- /dev/null +++ b/include/windows.storage.fileproperties.idl @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2023 Mohamad Al-Jaf + * + * 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 + +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +import "windows.devices.geolocation.idl"; +/* import "windows.storage.idl"; */ +import "windows.storage.streams.idl"; + +namespace Windows.Storage.FileProperties { + interface IBasicProperties; + + runtimeclass BasicProperties; + + declare { + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.FileProperties.BasicProperties *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.FileProperties.BasicProperties *>; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.FileProperties.BasicProperties), + uuid(d05d55db-785e-4a66-be02-9beec58aea81) + ] + interface IBasicProperties : IInspectable + { + [propget] HRESULT Size([out, retval] UINT64 *value); + [propget] HRESULT DateModified([out, retval] Windows.Foundation.DateTime *value); + [propget] HRESULT ItemDate([out, retval] Windows.Foundation.DateTime *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + runtimeclass BasicProperties + { + [default] interface Windows.Storage.FileProperties.IBasicProperties; + interface Windows.Storage.FileProperties.IStorageItemExtraProperties; + } +}
From: Mohamad Al-Jaf mohamadaljaf@gmail.com
Needed by IStorageFolder. --- include/windows.storage.idl | 60 +++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+)
diff --git a/include/windows.storage.idl b/include/windows.storage.idl index aa050040640..b3913a980af 100644 --- a/include/windows.storage.idl +++ b/include/windows.storage.idl @@ -33,7 +33,10 @@ import "windows.system.idl";
namespace Windows.Storage { typedef enum FileAccessMode FileAccessMode; + typedef enum FileAttributes FileAttributes; typedef enum NameCollisionOption NameCollisionOption; + typedef enum StorageDeleteOption StorageDeleteOption; + typedef enum StorageItemTypes StorageItemTypes;
interface IStorageFolder; interface IStorageFolderStatics; @@ -62,6 +65,21 @@ namespace Windows.Storage { ReadWrite = 1, };
+ [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + flags + ] + enum FileAttributes + { + Normal = 0x0, + ReadOnly = 0x1, + Directory = 0x10, + Archive = 0x20, + Temporary = 0x100, + [contract(Windows.Foundation.UniversalApiContract, 1.0)] + LocallyIncomplete = 0x200, + }; + [ contract(Windows.Foundation.UniversalApiContract, 1.0) ] @@ -72,6 +90,26 @@ namespace Windows.Storage { FailIfExists = 2, };
+ [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum StorageDeleteOption + { + Default = 0, + PermanentDelete = 1, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + flags + ] + enum StorageItemTypes + { + None = 0x0, + File = 0x1, + Folder = 0x2, + }; + [ contract(Windows.Foundation.UniversalApiContract, 1.0), uuid(fa3f6186-4214-428c-a64c-14c9ac7315ea) @@ -123,6 +161,28 @@ namespace Windows.Storage { HRESULT MoveAndReplaceAsync([in] Windows.Storage.IStorageFile *file, [out, retval] Windows.Foundation.IAsyncAction **operation); }
+ [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(4207a996-ca2f-42f7-bde8-8b10457a7f30) + ] + interface IStorageItem : IInspectable + { + [overload("RenameAsync")] + HRESULT RenameAsyncOverloadDefaultOptions([in] HSTRING name, [out, retval] Windows.Foundation.IAsyncAction **operation); + [overload("RenameAsync")] + HRESULT RenameAsync([in] HSTRING name, [in] Windows.Storage.NameCollisionOption option, [out, retval] Windows.Foundation.IAsyncAction **operation); + [overload("DeleteAsync")] + HRESULT DeleteAsyncOverloadDefaultOptions([out, retval] Windows.Foundation.IAsyncAction **operation); + [overload("DeleteAsync")] + HRESULT DeleteAsync([in] Windows.Storage.StorageDeleteOption option, [out, retval] Windows.Foundation.IAsyncAction **operation); + HRESULT GetBasicPropertiesAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.FileProperties.BasicProperties *> **operation); + [propget] HRESULT Name([out, retval] HSTRING *value); + [propget] HRESULT Path([out, retval] HSTRING *value); + [propget] HRESULT Attributes([out, retval] Windows.Storage.FileAttributes *value); + [propget] HRESULT DateCreated([out, retval] Windows.Foundation.DateTime *value); + HRESULT IsOfType([in] Windows.Storage.StorageItemTypes type, [out, retval] boolean *value); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.Storage.StorageStreamTransaction),
From: Mohamad Al-Jaf mohamadaljaf@gmail.com
Needed by StorageFolder. --- include/Makefile.in | 1 + include/windows.storage.search.idl | 35 ++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 include/windows.storage.search.idl
diff --git a/include/Makefile.in b/include/Makefile.in index a1908b42137..baf8793fe75 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -847,6 +847,7 @@ SOURCES = \ windows.security.isolation.idl \ windows.storage.fileproperties.idl \ windows.storage.idl \ + windows.storage.search.idl \ windows.storage.streams.idl \ windows.system.idl \ windows.system.power.idl \ diff --git a/include/windows.storage.search.idl b/include/windows.storage.search.idl new file mode 100644 index 00000000000..093b0837afb --- /dev/null +++ b/include/windows.storage.search.idl @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2023 Mohamad Al-Jaf + * + * 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 + +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +/* import "windows.data.text.idl"; */ +/* import "windows.storage.idl"; */ +import "windows.storage.fileproperties.idl"; +import "windows.storage.streams.idl"; + +namespace Windows.Storage.Search { + interface IStorageFolderQueryOperations; +}
From: Mohamad Al-Jaf mohamadaljaf@gmail.com
--- include/windows.storage.idl | 86 +++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-)
diff --git a/include/windows.storage.idl b/include/windows.storage.idl index b3913a980af..717460a0817 100644 --- a/include/windows.storage.idl +++ b/include/windows.storage.idl @@ -25,13 +25,14 @@ import "asyncinfo.idl"; import "eventtoken.idl"; import "windowscontracts.idl"; import "windows.foundation.idl"; -/* import "windows.storage.fileproperties.idl"; */ +import "windows.storage.fileproperties.idl"; /* import "windows.storage.provider.idl"; */ -/* import "windows.storage.search.idl"; */ +import "windows.storage.search.idl"; import "windows.storage.streams.idl"; import "windows.system.idl";
namespace Windows.Storage { + typedef enum CreationCollisionOption CreationCollisionOption; typedef enum FileAccessMode FileAccessMode; typedef enum FileAttributes FileAttributes; typedef enum NameCollisionOption NameCollisionOption; @@ -50,12 +51,36 @@ namespace Windows.Storage { runtimeclass StorageStreamTransaction;
declare { + interface Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem *>; + interface Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile *>; + interface Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem *> *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile *> *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder *> *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.IStorageItem *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.StorageFile *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.StorageFolder *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.StorageStreamTransaction *>; + interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem *> *>; + interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile *> *>; + interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder *> *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.IStorageItem *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.StorageStreamTransaction *>; }
+ [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum CreationCollisionOption + { + GenerateUniqueName = 0, + ReplaceExisting = 1, + FailIfExists = 2, + OpenIfExists = 3, + }; + [ contract(Windows.Foundation.UniversalApiContract, 1.0) ] @@ -161,6 +186,52 @@ namespace Windows.Storage { HRESULT MoveAndReplaceAsync([in] Windows.Storage.IStorageFile *file, [out, retval] Windows.Foundation.IAsyncAction **operation); }
+ [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(72d1cb78-b3ef-4f75-a80b-6fd9dae2944b) + ] + interface IStorageFolder : IInspectable + requires Windows.Storage.IStorageItem + { + [overload("CreateFileAsync")] + HRESULT CreateFileAsyncOverloadDefaultOptions( + [in] HSTRING name, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile *> **operation + ); + [overload("CreateFileAsync")] + HRESULT CreateFileAsync( + [in] HSTRING name, + [in] Windows.Storage.CreationCollisionOption options, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile *> **operation + ); + [overload("CreateFolderAsync")] + HRESULT CreateFolderAsyncOverloadDefaultOptions( + [in] HSTRING name, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder *> **operation + ); + [overload("CreateFolderAsync")] + HRESULT CreateFolderAsync( + [in] HSTRING name, + [in] Windows.Storage.CreationCollisionOption options, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder *> **operation + ); + HRESULT GetFileAsync([in] HSTRING name, [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile *> **operation); + HRESULT GetFolderAsync([in] HSTRING name, [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder *> **operation); + HRESULT GetItemAsync([in] HSTRING name, [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.IStorageItem *> **operation); + [overload("GetFilesAsync")] + HRESULT GetFilesAsyncOverloadDefaultOptionsStartAndCount( + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile *> *> **operation + ); + [overload("GetFoldersAsync")] + HRESULT GetFoldersAsyncOverloadDefaultOptionsStartAndCount( + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder *> *> **operation + ); + [overload("GetItemsAsync")] + HRESULT GetItemsAsyncOverloadDefaultStartAndCount( + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem *> *> **operation + ); + } + [ contract(Windows.Foundation.UniversalApiContract, 1.0), uuid(4207a996-ca2f-42f7-bde8-8b10457a7f30) @@ -216,11 +287,20 @@ namespace Windows.Storage {
[ contract(Windows.Foundation.UniversalApiContract, 1.0), - static(Windows.Storage.IStorageFolderStatics, Windows.Foundation.UniversalApiContract, 1.0) + static(Windows.Storage.IStorageFolderStatics, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.Storage.IStorageFolderStatics2, Windows.Foundation.UniversalApiContract, 10.0) ] runtimeclass StorageFolder { [default] interface Windows.Storage.IStorageFolder; + interface Windows.Storage.IStorageItem; + interface Windows.Storage.Search.IStorageFolderQueryOperations; + interface Windows.Storage.IStorageItemProperties; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IStorageItemProperties2; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IStorageItem2; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IStorageFolder2; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IStorageItemPropertiesWithProvider; + [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Storage.IStorageFolder3; }
[
CI failure means that the patch separation is wrong. Note that Wine needs to build after each commit individually.
You can uncomment `import "windows.storage.fileproperties.idl"` in `windows.storage.idl` when the `windows.storage.fileproperties.idl` file is introduced, it should fix the compilation failure.