Windows registry keys such as `HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsRuntime\ActivatableClassId\Windows.Storage.ApplicationData` indicate that `Windows.Storage.ApplicationData` related classes should be in `windows.storage.applicationdata.dll`, and the remaining classes together with `Windows.Storage.StorageFile` should be in `windows.storage.dll`.
Split Windows.Storage.ApplicationData definitions out of windows.storage.idl to windows.storage.applicationdata.idl and import that instead of whole window.storage.idl into windows.storage.applicationdata.dll, to better reflect Windows implementation.
This allows future implementions of class `Windows.Storage.StorageFile` to be correctly put in the `windows.storage.dll`, instead of `windows.storage.applicationdata.dll`, see https://gitlab.winehq.org/wine/wine/-/merge_requests/8394
From: Ignacy Kuchciński ignacykuchcinski@gmail.com
Split Windows.Storage.ApplicationData definitions out of windows.storage.idl to windows.storage.applicationdata.idl and import that instead of whole window.storage.idl into windows.storage.applicationdata.dll, to better reflect Windows implementation. --- .../classes.idl | 2 +- .../windows.storage.applicationdata/private.h | 2 +- .../tests/data.c | 2 +- dlls/windows.storage/classes.idl | 15 + include/Makefile.in | 1 + include/windows.applicationmodel.idl | 1 + include/windows.storage.applicationdata.idl | 257 ++++++++++++++++++ include/windows.storage.fileproperties.idl | 2 + include/windows.storage.idl | 223 +-------------- include/windows.storage.search.idl | 2 + 10 files changed, 283 insertions(+), 224 deletions(-) create mode 100644 include/windows.storage.applicationdata.idl
diff --git a/dlls/windows.storage.applicationdata/classes.idl b/dlls/windows.storage.applicationdata/classes.idl index b24def16f0f..6096286690c 100644 --- a/dlls/windows.storage.applicationdata/classes.idl +++ b/dlls/windows.storage.applicationdata/classes.idl @@ -20,4 +20,4 @@
#pragma makedep register
-#include "windows.storage.idl" +#include "windows.storage.applicationdata.idl" diff --git a/dlls/windows.storage.applicationdata/private.h b/dlls/windows.storage.applicationdata/private.h index 6eebc9b25be..f8bcb3ed624 100644 --- a/dlls/windows.storage.applicationdata/private.h +++ b/dlls/windows.storage.applicationdata/private.h @@ -33,7 +33,7 @@ #define WIDL_using_Windows_Foundation_Collections #include "windows.foundation.h" #define WIDL_using_Windows_Storage -#include "windows.storage.h" +#include "windows.storage.applicationdata.h"
extern IActivationFactory *application_data_factory;
diff --git a/dlls/windows.storage.applicationdata/tests/data.c b/dlls/windows.storage.applicationdata/tests/data.c index 18145a4b14d..e7df7830360 100644 --- a/dlls/windows.storage.applicationdata/tests/data.c +++ b/dlls/windows.storage.applicationdata/tests/data.c @@ -29,7 +29,7 @@ #define WIDL_using_Windows_Foundation_Collections #include "windows.foundation.h" #define WIDL_using_Windows_Storage -#include "windows.storage.h" +#include "windows.storage.applicationdata.h"
#include "wine/test.h"
diff --git a/dlls/windows.storage/classes.idl b/dlls/windows.storage/classes.idl index 8a7be135572..c77d7ec9ebb 100644 --- a/dlls/windows.storage/classes.idl +++ b/dlls/windows.storage/classes.idl @@ -20,5 +20,20 @@
#pragma makedep register
+#ifdef __WIDL__ +#pragma winrt ns_prefix +#endif + +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windows.foundation.idl"; +import "windowscontracts.idl"; +import "windows.system.idl"; + #define _WINDOWS_STORAGE +#define DO_NO_IMPORTS +#include "windows.storage.fileproperties.idl" +#include "windows.storage.search.idl" #include "windows.storage.streams.idl" +#include "windows.storage.idl" diff --git a/include/Makefile.in b/include/Makefile.in index 650d69815f8..f0e9444eb23 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -910,6 +910,7 @@ SOURCES = \ windows.security.enterprisedata.idl \ windows.security.exchangeactivesyncprovisioning.idl \ windows.security.isolation.idl \ + windows.storage.applicationdata.idl \ windows.storage.fileproperties.idl \ windows.storage.idl \ windows.storage.search.idl \ diff --git a/include/windows.applicationmodel.idl b/include/windows.applicationmodel.idl index 387a77ebef4..b9ce9d0766e 100644 --- a/include/windows.applicationmodel.idl +++ b/include/windows.applicationmodel.idl @@ -23,6 +23,7 @@ #ifndef DO_NO_IMPORTS import "windows.foundation.idl"; import "windows.storage.idl"; +import "windows.storage.applicationdata.idl"; import "windows.system.idl"; import "windows.applicationmodel.activation.idl"; import "windows.applicationmodel.core.idl"; diff --git a/include/windows.storage.applicationdata.idl b/include/windows.storage.applicationdata.idl new file mode 100644 index 00000000000..ee957670eb9 --- /dev/null +++ b/include/windows.storage.applicationdata.idl @@ -0,0 +1,257 @@ +/* + * Copyright 2023 Hans Leidekker 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 + +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +import "windows.system.idl"; +import "windows.storage.idl"; + +namespace Windows.Storage { + typedef enum ApplicationDataCreateDisposition ApplicationDataCreateDisposition; + typedef enum ApplicationDataLocality ApplicationDataLocality; + + interface IApplicationData; + interface IApplicationData2; + interface IApplicationData3; + interface IApplicationDataContainer; + interface IApplicationDataStatics; + interface IApplicationDataStatics2; + interface ISetVersionDeferral; + interface ISetVersionRequest; + + runtimeclass ApplicationData; + runtimeclass ApplicationDataContainer; + runtimeclass SetVersionDeferral; + runtimeclass SetVersionRequest; + + declare { + interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Storage.ApplicationDataContainer *>; + interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Storage.ApplicationDataContainer *> *>; + interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Storage.ApplicationDataContainer *> *>; + interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.ApplicationDataContainer *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.ApplicationData *>; + interface Windows.Foundation.IAsyncOperation<Windows.Storage.ApplicationData *>; + interface Windows.Foundation.TypedEventHandler<Windows.Storage.ApplicationData *, IInspectable *>; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum ApplicationDataCreateDisposition + { + Always = 0, + Existing = 1, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum ApplicationDataLocality + { + Local = 0, + Roaming = 1, + Temporary = 2, + LocalCache = 3, + [contract(Windows.Foundation.UniversalApiContract, 12.0)] + SharedLocal = 4, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(a05791e6-cc9f-4687-acab-a364fd785463) + ] + delegate HRESULT ApplicationDataSetVersionHandler([in] Windows.Storage.SetVersionRequest *version); + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.ApplicationData), + uuid(c3da6fb7-b744-4b45-b0b8-223a0938d0dc) + ] + interface IApplicationData : IInspectable + { + [propget] HRESULT Version([out, retval] UINT32 *value); + HRESULT SetVersionAsync( + [in] UINT32 version, + [in] Windows.Storage.ApplicationDataSetVersionHandler *handler, + [out, retval] Windows.Foundation.IAsyncAction **operation + ); + [overload("ClearAsync")] + HRESULT ClearAllAsync( + [out, retval] Windows.Foundation.IAsyncAction **operation + ); + [overload("ClearAsync")] + HRESULT ClearAsync( + [in] Windows.Storage.ApplicationDataLocality locality, + [out, retval] Windows.Foundation.IAsyncAction **operation + ); + [propget] HRESULT LocalSettings([out, retval] Windows.Storage.ApplicationDataContainer **value); + [propget] HRESULT RoamingSettings([out, retval] Windows.Storage.ApplicationDataContainer **value); + [propget] HRESULT LocalFolder([out, retval] Windows.Storage.StorageFolder **value); + [propget] HRESULT RoamingFolder([out, retval] Windows.Storage.StorageFolder **value); + [propget] HRESULT TemporaryFolder([out, retval] Windows.Storage.StorageFolder **value); + [eventadd] HRESULT DataChanged( + [in] Windows.Foundation.TypedEventHandler<Windows.Storage.ApplicationData *, IInspectable *> *handler, + [out, retval] EventRegistrationToken *token + ); + [eventremove] HRESULT DataChanged([in] EventRegistrationToken token); + HRESULT SignalDataChanged(); + [propget] HRESULT RoamingStorageQuota([out, retval] UINT64 *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.ApplicationData), + uuid(9e65cd69-0ba3-4e32-be29-b02de6607638) + ] + interface IApplicationData2 : IInspectable + { + [propget] HRESULT LocalCacheFolder([out, retval] Windows.Storage.StorageFolder **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.ApplicationData), + uuid(dc222cf4-2772-4c1d-aa2c-c9f743ade8d1) + ] + interface IApplicationData3 : IInspectable + { + HRESULT GetPublisherCacheFolder( + [in] HSTRING folder_name, + [out, retval] Windows.Storage.StorageFolder **value + ); + HRESULT ClearPublisherCacheFolderAsync( + [in] HSTRING folder_name, + [out, retval] Windows.Foundation.IAsyncAction **operation + ); + [propget] HRESULT SharedLocalFolder([out, retval] Windows.Storage.StorageFolder **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.ApplicationDataContainer), + uuid(c5aefd1e-f467-40ba-8566-ab640a441e1d) + ] + interface IApplicationDataContainer : IInspectable + { + [propget] HRESULT Name([out, retval] HSTRING *value); + [propget] HRESULT Locality([out, retval] Windows.Storage.ApplicationDataLocality *value); + [propget] HRESULT Values([out, retval] Windows.Foundation.Collections.IPropertySet **value); + [propget] HRESULT Containers([out, retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.ApplicationDataContainer *> **value); + HRESULT CreateContainer( + [in] HSTRING name, + [in] Windows.Storage.ApplicationDataCreateDisposition disposition, + [out, retval] Windows.Storage.ApplicationDataContainer **container + ); + HRESULT DeleteContainer([in] HSTRING name); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.ApplicationData), + uuid(5612147b-e843-45e3-94d8-06169e3c8e17) + ] + interface IApplicationDataStatics : IInspectable + { + [propget] HRESULT Current([out, retval] Windows.Storage.ApplicationData **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.ApplicationData), + uuid(cd606211-cf49-40a4-a47c-c7f0dbba8107) + ] + interface IApplicationDataStatics2 : IInspectable + { + HRESULT GetForUserAsync( + [in] Windows.System.User *user, + [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.ApplicationData *> **operation + ); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.SetVersionDeferral), + uuid(033508a2-781a-437a-b078-3f32badcfe47) + ] + interface ISetVersionDeferral : IInspectable + { + HRESULT Complete(); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Storage.SetVersionRequest), + uuid(b9c76b9b-1056-4e69-8330-162619956f9b) + ] + interface ISetVersionRequest : IInspectable + { + [propget] HRESULT CurrentVersion([out, retval] UINT32 *version); + [propget] HRESULT DesiredVersion([out, retval] UINT32 *version); + HRESULT GetDeferral([out, retval] Windows.Storage.SetVersionDeferral **deferral); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.Storage.IApplicationDataStatics, Windows.Foundation.UniversalApiContract, 1.0), + static(Windows.Storage.IApplicationDataStatics2, Windows.Foundation.UniversalApiContract, 1.0), + threading(mta) + ] + runtimeclass ApplicationData + { + [default] interface Windows.Storage.IApplicationData; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IApplicationData2; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IApplicationData3; + [contract(Windows.Foundation.UniversalApiContract, 12.0)] interface Windows.Foundation.IClosable; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass ApplicationDataContainer + { + [default] interface Windows.Storage.IApplicationDataContainer; + [contract(Windows.Foundation.UniversalApiContract, 12.0)] interface Windows.Foundation.IClosable; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass SetVersionDeferral + { + [default] interface Windows.Storage.ISetVersionDeferral; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass SetVersionRequest + { + [default] interface Windows.Storage.ISetVersionRequest; + } +} diff --git a/include/windows.storage.fileproperties.idl b/include/windows.storage.fileproperties.idl index 9426d02fefb..8469e6c12aa 100644 --- a/include/windows.storage.fileproperties.idl +++ b/include/windows.storage.fileproperties.idl @@ -20,6 +20,7 @@ #pragma winrt ns_prefix #endif
+#ifndef DO_NO_IMPORTS import "inspectable.idl"; import "asyncinfo.idl"; import "eventtoken.idl"; @@ -28,6 +29,7 @@ import "windows.foundation.idl"; import "windows.devices.geolocation.idl"; /* import "windows.storage.idl"; */ import "windows.storage.streams.idl"; +#endif
namespace Windows.Storage.FileProperties { interface IBasicProperties; diff --git a/include/windows.storage.idl b/include/windows.storage.idl index 483fc5a957e..f7e4ccae911 100644 --- a/include/windows.storage.idl +++ b/include/windows.storage.idl @@ -20,9 +20,9 @@ #pragma winrt ns_prefix #endif
+#ifndef DO_NO_IMPORTS import "inspectable.idl"; import "asyncinfo.idl"; -import "eventtoken.idl"; import "windowscontracts.idl"; import "windows.foundation.idl"; import "windows.storage.fileproperties.idl"; @@ -30,10 +30,9 @@ import "windows.storage.fileproperties.idl"; import "windows.storage.search.idl"; import "windows.storage.streams.idl"; import "windows.system.idl"; +#endif
namespace Windows.Storage { - typedef enum ApplicationDataCreateDisposition ApplicationDataCreateDisposition; - typedef enum ApplicationDataLocality ApplicationDataLocality; typedef enum CreationCollisionOption CreationCollisionOption; typedef enum FileAccessMode FileAccessMode; typedef enum FileAttributes FileAttributes; @@ -43,12 +42,6 @@ namespace Windows.Storage { typedef enum StorageDeleteOption StorageDeleteOption; typedef enum StorageItemTypes StorageItemTypes;
- interface IApplicationData; - interface IApplicationData2; - interface IApplicationData3; - interface IApplicationDataContainer; - interface IApplicationDataStatics; - interface IApplicationDataStatics2; interface IKnownFoldersCameraRollStatics; interface IKnownFoldersPlaylistsStatics; interface IKnownFoldersSavedPicturesStatics; @@ -56,8 +49,6 @@ namespace Windows.Storage { interface IKnownFoldersStatics2; interface IKnownFoldersStatics3; interface IKnownFoldersStatics4; - interface ISetVersionDeferral; - interface ISetVersionRequest; interface IStorageFolder; interface IStorageFolderStatics; interface IStorageFolderStatics2; @@ -65,29 +56,20 @@ namespace Windows.Storage { interface IStorageFileStatics2; interface IStorageItem;
- runtimeclass ApplicationData; - runtimeclass ApplicationDataContainer; runtimeclass KnownFolders; - runtimeclass SetVersionDeferral; - runtimeclass SetVersionRequest; runtimeclass StorageFolder; runtimeclass StorageFile; runtimeclass StorageStreamTransaction;
declare { - interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Storage.ApplicationDataContainer *>; - interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Storage.ApplicationDataContainer *> *>; interface Windows.Foundation.Collections.IIterable<Windows.Storage.IStorageItem *>; - interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Storage.ApplicationDataContainer *> *>; interface Windows.Foundation.Collections.IIterator<Windows.Storage.IStorageItem *>; - interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.ApplicationDataContainer *>; 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.ApplicationData *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.KnownFoldersAccessStatus>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.IStorageItem *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.StorageFile *>; @@ -96,37 +78,13 @@ namespace Windows.Storage { 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.ApplicationData *>; interface Windows.Foundation.IAsyncOperation<Windows.Storage.KnownFoldersAccessStatus>; 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 *>; - interface Windows.Foundation.TypedEventHandler<Windows.Storage.ApplicationData *, IInspectable *>; }
- [ - contract(Windows.Foundation.UniversalApiContract, 1.0) - ] - enum ApplicationDataCreateDisposition - { - Always = 0, - Existing = 1, - }; - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0) - ] - enum ApplicationDataLocality - { - Local = 0, - Roaming = 1, - Temporary = 2, - LocalCache = 3, - [contract(Windows.Foundation.UniversalApiContract, 12.0)] - SharedLocal = 4, - }; - [ contract(Windows.Foundation.UniversalApiContract, 1.0) ] @@ -233,118 +191,6 @@ namespace Windows.Storage { Folder = 0x2, };
- [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - uuid(a05791e6-cc9f-4687-acab-a364fd785463) - ] - delegate HRESULT ApplicationDataSetVersionHandler([in] Windows.Storage.SetVersionRequest *version); - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - exclusiveto(Windows.Storage.ApplicationData), - uuid(c3da6fb7-b744-4b45-b0b8-223a0938d0dc) - ] - interface IApplicationData : IInspectable - { - [propget] HRESULT Version([out, retval] UINT32 *value); - HRESULT SetVersionAsync( - [in] UINT32 version, - [in] Windows.Storage.ApplicationDataSetVersionHandler *handler, - [out, retval] Windows.Foundation.IAsyncAction **operation - ); - [overload("ClearAsync")] - HRESULT ClearAllAsync( - [out, retval] Windows.Foundation.IAsyncAction **operation - ); - [overload("ClearAsync")] - HRESULT ClearAsync( - [in] Windows.Storage.ApplicationDataLocality locality, - [out, retval] Windows.Foundation.IAsyncAction **operation - ); - [propget] HRESULT LocalSettings([out, retval] Windows.Storage.ApplicationDataContainer **value); - [propget] HRESULT RoamingSettings([out, retval] Windows.Storage.ApplicationDataContainer **value); - [propget] HRESULT LocalFolder([out, retval] Windows.Storage.StorageFolder **value); - [propget] HRESULT RoamingFolder([out, retval] Windows.Storage.StorageFolder **value); - [propget] HRESULT TemporaryFolder([out, retval] Windows.Storage.StorageFolder **value); - [eventadd] HRESULT DataChanged( - [in] Windows.Foundation.TypedEventHandler<Windows.Storage.ApplicationData *, IInspectable *> *handler, - [out, retval] EventRegistrationToken *token - ); - [eventremove] HRESULT DataChanged([in] EventRegistrationToken token); - HRESULT SignalDataChanged(); - [propget] HRESULT RoamingStorageQuota([out, retval] UINT64 *value); - } - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - exclusiveto(Windows.Storage.ApplicationData), - uuid(9e65cd69-0ba3-4e32-be29-b02de6607638) - ] - interface IApplicationData2 : IInspectable - { - [propget] HRESULT LocalCacheFolder([out, retval] Windows.Storage.StorageFolder **value); - } - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - exclusiveto(Windows.Storage.ApplicationData), - uuid(dc222cf4-2772-4c1d-aa2c-c9f743ade8d1) - ] - interface IApplicationData3 : IInspectable - { - HRESULT GetPublisherCacheFolder( - [in] HSTRING folder_name, - [out, retval] Windows.Storage.StorageFolder **value - ); - HRESULT ClearPublisherCacheFolderAsync( - [in] HSTRING folder_name, - [out, retval] Windows.Foundation.IAsyncAction **operation - ); - [propget] HRESULT SharedLocalFolder([out, retval] Windows.Storage.StorageFolder **value); - } - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - exclusiveto(Windows.Storage.ApplicationDataContainer), - uuid(c5aefd1e-f467-40ba-8566-ab640a441e1d) - ] - interface IApplicationDataContainer : IInspectable - { - [propget] HRESULT Name([out, retval] HSTRING *value); - [propget] HRESULT Locality([out, retval] Windows.Storage.ApplicationDataLocality *value); - [propget] HRESULT Values([out, retval] Windows.Foundation.Collections.IPropertySet **value); - [propget] HRESULT Containers([out, retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.ApplicationDataContainer *> **value); - HRESULT CreateContainer( - [in] HSTRING name, - [in] Windows.Storage.ApplicationDataCreateDisposition disposition, - [out, retval] Windows.Storage.ApplicationDataContainer **container - ); - HRESULT DeleteContainer([in] HSTRING name); - } - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - exclusiveto(Windows.Storage.ApplicationData), - uuid(5612147b-e843-45e3-94d8-06169e3c8e17) - ] - interface IApplicationDataStatics : IInspectable - { - [propget] HRESULT Current([out, retval] Windows.Storage.ApplicationData **value); - } - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - exclusiveto(Windows.Storage.ApplicationData), - uuid(cd606211-cf49-40a4-a47c-c7f0dbba8107) - ] - interface IApplicationDataStatics2 : IInspectable - { - HRESULT GetForUserAsync( - [in] Windows.System.User *user, - [out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.ApplicationData *> **operation - ); - } - [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.Storage.KnownFolders), @@ -439,28 +285,6 @@ namespace Windows.Storage { ); }
- [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - exclusiveto(Windows.Storage.SetVersionDeferral), - uuid(033508a2-781a-437a-b078-3f32badcfe47) - ] - interface ISetVersionDeferral : IInspectable - { - HRESULT Complete(); - } - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - exclusiveto(Windows.Storage.SetVersionRequest), - uuid(b9c76b9b-1056-4e69-8330-162619956f9b) - ] - interface ISetVersionRequest : IInspectable - { - [propget] HRESULT CurrentVersion([out, retval] UINT32 *version); - [propget] HRESULT DesiredVersion([out, retval] UINT32 *version); - HRESULT GetDeferral([out, retval] Windows.Storage.SetVersionDeferral **deferral); - } - [ contract(Windows.Foundation.UniversalApiContract, 1.0), uuid(fa3f6186-4214-428c-a64c-14c9ac7315ea) @@ -592,31 +416,6 @@ namespace Windows.Storage { HRESULT CommitAsync([out, retval] Windows.Foundation.IAsyncAction **operation); }
- [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - marshaling_behavior(agile), - static(Windows.Storage.IApplicationDataStatics, Windows.Foundation.UniversalApiContract, 1.0), - static(Windows.Storage.IApplicationDataStatics2, Windows.Foundation.UniversalApiContract, 1.0), - threading(mta) - ] - runtimeclass ApplicationData - { - [default] interface Windows.Storage.IApplicationData; - [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IApplicationData2; - [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.IApplicationData3; - [contract(Windows.Foundation.UniversalApiContract, 12.0)] interface Windows.Foundation.IClosable; - } - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - marshaling_behavior(agile) - ] - runtimeclass ApplicationDataContainer - { - [default] interface Windows.Storage.IApplicationDataContainer; - [contract(Windows.Foundation.UniversalApiContract, 12.0)] interface Windows.Foundation.IClosable; - } - [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), @@ -632,24 +431,6 @@ namespace Windows.Storage { { }
- [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - marshaling_behavior(agile) - ] - runtimeclass SetVersionDeferral - { - [default] interface Windows.Storage.ISetVersionDeferral; - } - - [ - contract(Windows.Foundation.UniversalApiContract, 1.0), - marshaling_behavior(agile) - ] - runtimeclass SetVersionRequest - { - [default] interface Windows.Storage.ISetVersionRequest; - } - [ contract(Windows.Foundation.UniversalApiContract, 1.0), static(Windows.Storage.IStorageFileStatics, Windows.Foundation.UniversalApiContract, 1.0), diff --git a/include/windows.storage.search.idl b/include/windows.storage.search.idl index 093b0837afb..217889c3c89 100644 --- a/include/windows.storage.search.idl +++ b/include/windows.storage.search.idl @@ -20,6 +20,7 @@ #pragma winrt ns_prefix #endif
+#ifndef DO_NO_IMPORTS import "inspectable.idl"; import "asyncinfo.idl"; import "eventtoken.idl"; @@ -29,6 +30,7 @@ import "windows.foundation.idl"; /* import "windows.storage.idl"; */ import "windows.storage.fileproperties.idl"; import "windows.storage.streams.idl"; +#endif
namespace Windows.Storage.Search { interface IStorageFolderQueryOperations;
Windows SDK doesn't seem to have a separate windows.storage.applicationdata.idl file. What you would need instead is to conditionally declare the runtimeclass based on #ifdef depending on the module, like it is done in `windows.storage.streams.idl`.
Referenced and relevant files links for quick access: - https://gitlab.winehq.org/wine/wine/-/blob/master/include/windows.storage.id... - https://gitlab.winehq.org/wine/wine/-/blob/master/include/windows.storage.st... - https://gitlab.winehq.org/wine/wine/-/blob/master/dlls/wintypes/classes.idl - https://gitlab.winehq.org/wine/wine/-/blob/master/dlls/windows.storage/class... - https://gitlab.winehq.org/wine/wine/-/blob/master/dlls/windows.storage.appli...