They are not actually runtime classes, but it tricks widl into producing correct code (and class string).
ApplicationData is a sealed class implementing some interfaces [1] KnownFolders is a static class implementing multiple interfaces [2]. [1] https://docs.microsoft.com/en-us/uwp/api/windows.storage.applicationdata [2] https://docs.microsoft.com/en-us/uwp/api/windows.storage.knownfolders --- mingw-w64-headers/include/windows.storage.idl | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/mingw-w64-headers/include/windows.storage.idl b/mingw-w64-headers/include/windows.storage.idl index 08d684829..f47d7adc8 100644 --- a/mingw-w64-headers/include/windows.storage.idl +++ b/mingw-w64-headers/include/windows.storage.idl @@ -29,9 +29,20 @@ namespace Windows { typedef enum ApplicationDataCreateDisposition ApplicationDataCreateDisposition; typedef enum FileAttributes FileAttributes; typedef enum CreationCollisionOption CreationCollisionOption; + + runtimeclass ApplicationData; + runtimeclass KnownFolders; } } +namespace Windows { + namespace Foundation { + declare { + interface Windows.Foundation.TypedEventHandler<Windows.Storage.ApplicationData*, IInspectable*>; + } + } +} + namespace Windows { namespace Storage { enum NameCollisionOption { @@ -112,6 +123,17 @@ namespace Windows { [propget] HRESULT MediaServerDevices(IStorageFolder** value); } + [ + activatable(Windows.Foundation.UniversalApiContract, 1.0), + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.Storage.IKnownFoldersStatics, Windows.Foundation.UniversalApiContract, 1.0), + ] + runtimeclass KnownFolders + { + [default] interface IInspectable; + } + [uuid(72D1CB78-B3EF-4F75-A80B-6FD9DAE2944B)] interface IStorageFolder : IInspectable { @@ -148,12 +170,20 @@ namespace Windows { [propget] HRESULT LocalFolder(IStorageFolder** value); [propget] HRESULT RoamingFolder(IStorageFolder** value); [propget] HRESULT TemporaryFolder(IStorageFolder** value); - [eventadd] HRESULT DataChanged(/*TypedEventHandler<ApplicationData*, IInspectable*>*/IInspectable* handler, EventRegistrationToken* token); + [eventadd] HRESULT DataChanged(Windows.Foundation.TypedEventHandler<ApplicationData*, IInspectable*>* handler, EventRegistrationToken* token); [eventremove] HRESULT DataChanged(EventRegistrationToken token); HRESULT SignalDataChanged(); HRESULT RoamingStorageQuota(UINT64* value); } + [ + marshaling_behavior(agile) + ] + runtimeclass ApplicationData + { + [default] interface IApplicationData; + } + [uuid(9E65CD69-0BA3-4E32-BE29-B02DE6607638)] interface IApplicationData2 : IInspectable { [propget] HRESULT LocalCacheFolder(IStorageFolder** value); -- 2.29.2 _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
