diff --git a/include/Makefile.in b/include/Makefile.in index 115da5bd080..32ef2cd41c1 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -754,6 +754,7 @@ SOURCES = \ windows.gaming.input.idl \ windows.h \ windows.media.speechsynthesis.idl \ + windows.system.idl \ windowscontracts.idl \ windowsx.h \ wine/debug.h \ diff --git a/include/windows.system.idl b/include/windows.system.idl new file mode 100644 index 00000000000..aaf5ecd69a1 --- /dev/null +++ b/include/windows.system.idl @@ -0,0 +1,73 @@ +/* + * Copyright 2021 RĂ©mi Bernon 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"; + +namespace Windows { + namespace System { + interface IUser; + interface IUserStatics; + interface IUserChangedEventArgs; + interface IUserChangedEventArgs2; + runtimeclass User; + runtimeclass UserChangedEventArgs; + } +} + +namespace Windows { + namespace System { + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.System.UserChangedEventArgs), + uuid(086459dc-18c6-48db-bc99-724fb9203ccc) + ] + interface IUserChangedEventArgs : IInspectable + { + [propget] HRESULT User([out, retval] Windows.System.User** value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.System.IUserStatics, Windows.Foundation.UniversalApiContract, 1.0), + threading(both), + ] + runtimeclass User + { + [default] interface Windows.System.IUser; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass UserChangedEventArgs + { + [default] interface Windows.System.IUserChangedEventArgs; + [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.System.IUserChangedEventArgs2; + } + } +}