From: Zhiyi Zhang zzhang@codeweavers.com
--- include/Makefile.in | 1 + include/windows.ui.xaml.idl | 255 ++++++++++++++++++++++++++++++++++++ 2 files changed, 256 insertions(+) create mode 100644 include/windows.ui.xaml.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 55c7516df6e..d4f63fe169c 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -895,6 +895,7 @@ SOURCES = \ windows.ui.input.idl \ windows.ui.viewmanagement.idl \ windows.ui.xaml.hosting.desktopwindowxamlsource.idl \ + windows.ui.xaml.idl \ windows.ui.xaml.interop.idl \ windowscontracts.idl \ windowsx.h \ diff --git a/include/windows.ui.xaml.idl b/include/windows.ui.xaml.idl new file mode 100644 index 00000000000..e143597281d --- /dev/null +++ b/include/windows.ui.xaml.idl @@ -0,0 +1,255 @@ +/* + * Copyright 2024 Zhiyi Zhang 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.applicationmodel.idl"; +import "windows.applicationmodel.activation.idl"; +import "windows.applicationmodel.core.idl"; +import "windows.foundation.numerics.idl"; +import "windows.graphics.imaging.idl"; +import "windows.ui.idl"; +import "windows.ui.composition.idl"; +import "windows.ui.core.idl"; +import "windows.ui.input.idl"; +import "windows.ui.xaml.interop.idl"; + +namespace Windows.UI.Xaml { + interface IDataTemplateKey; + interface IDependencyObject; + interface IDependencyProperty; + interface IDependencyPropertyChangedEventArgs; + interface IDependencyPropertyStatics; + interface IPropertyMetadata; + interface IPropertyMetadataFactory; + interface IPropertyMetadataStatics; + + runtimeclass DataTemplateKey; + runtimeclass DependencyObject; + runtimeclass DependencyProperty; + runtimeclass DependencyPropertyChangedEventArgs; + runtimeclass PropertyMetadata; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(d6ecb12c-15b5-4ec8-b95c-cdd208f08153) + ] + delegate HRESULT CreateDefaultValueCallback([out, retval] IInspectable **result); + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(45883d16-27bf-4bc1-ac26-94c1601f3a49) + ] + delegate HRESULT DependencyPropertyChangedCallback([in] Windows.UI.Xaml.DependencyObject *sender, [in] Windows.UI.Xaml.DependencyProperty *dp); + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + uuid(5a9f8a25-d142-44a4-8231-fd676724f29b) + ] + delegate HRESULT PropertyChangedCallback([in] Windows.UI.Xaml.DependencyObject *obj, [in] Windows.UI.Xaml.DependencyPropertyChangedEventArgs *args); + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.DataTemplateKey), + uuid(873b6c28-cceb-4b61-86fa-b2cec39cc2fa) + ] + interface IDataTemplateKey : IInspectable + { + [propget] HRESULT DataType([out, retval] IInspectable **value); + [propput] HRESULT DataType([in] IInspectable *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.DataTemplateKey), + uuid(e96b2959-d982-4152-91cb-de0e4dfd7693) + ] + interface IDataTemplateKeyFactory : IInspectable + { + HRESULT CreateInstance([in] IInspectable *base_interface, [out] IInspectable **inner_interface, [out, retval] Windows.UI.Xaml.DataTemplateKey **value); + HRESULT CreateInstanceWithType([in] IInspectable *data_type, [in] IInspectable *base_interface, [out] IInspectable **inner_interface, [out, retval] Windows.UI.Xaml.DataTemplateKey **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.DependencyObject), + uuid(5c526665-f60e-4912-af59-5fe0680f089d) + ] + interface IDependencyObject : IInspectable + { + HRESULT GetValue([in] Windows.UI.Xaml.DependencyProperty *dp, [out, retval] IInspectable **result); + HRESULT SetValue([in] Windows.UI.Xaml.DependencyProperty *dp, [in] IInspectable *value); + HRESULT ClearValue([in] Windows.UI.Xaml.DependencyProperty *dp); + HRESULT ReadLocalValue([in] Windows.UI.Xaml.DependencyProperty *dp, [out, retval] IInspectable **result); + HRESULT GetAnimationBaseValue([in] Windows.UI.Xaml.DependencyProperty *dp, [out, retval] IInspectable **result); + [propget] HRESULT Dispatcher([out, retval] Windows.UI.Core.CoreDispatcher **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.DependencyObject), + uuid(29fed85d-3d22-43a1-add0-17027c08b212) + ] + interface IDependencyObject2 : IInspectable + { + HRESULT RegisterPropertyChangedCallback([in] Windows.UI.Xaml.DependencyProperty *dp, [in] Windows.UI.Xaml.DependencyPropertyChangedCallback *callback, [out, retval] INT64 *result); + HRESULT UnregisterPropertyChangedCallback([in] Windows.UI.Xaml.DependencyProperty *dp, [in] INT64 token); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.DependencyObject), + uuid(9a03af92-7d8a-4937-884f-ecf34fe02acb) + ] + interface IDependencyObjectFactory : IInspectable + { + HRESULT CreateInstance([in] IInspectable *base_interface, [out] IInspectable **inner_interface, [out, retval] Windows.UI.Xaml.DependencyObject **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.DependencyProperty), + uuid(85b13970-9bc4-4e96-acf1-30c8fd3d55c8) + ] + interface IDependencyProperty : IInspectable + { + HRESULT GetMetadata([in] Windows.UI.Xaml.Interop.TypeName type, [out, retval] Windows.UI.Xaml.PropertyMetadata **result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.DependencyPropertyChangedEventArgs), + uuid(81212c2b-24d0-4957-abc3-224470a93a4e) + ] + interface IDependencyPropertyChangedEventArgs : IInspectable + { + [propget] HRESULT Property([out, retval] Windows.UI.Xaml.DependencyProperty **value); + [propget] HRESULT OldValue([out, retval] IInspectable **value); + [propget] HRESULT NewValue([out, retval] IInspectable **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.DependencyProperty), + uuid(49e5f28f-8259-4d5c-aae0-83d56dbb68d9) + ] + interface IDependencyPropertyStatics : IInspectable + { + [propget] HRESULT UnsetValue([out, retval] IInspectable **value); + HRESULT Register([in] HSTRING name, [in] Windows.UI.Xaml.Interop.TypeName property_type, [in] Windows.UI.Xaml.Interop.TypeName owner_type, [in] Windows.UI.Xaml.PropertyMetadata *type_metadata, [out, retval] Windows.UI.Xaml.DependencyProperty **result); + HRESULT RegisterAttached([in] HSTRING name, [in] Windows.UI.Xaml.Interop.TypeName property_type, [in] Windows.UI.Xaml.Interop.TypeName owner_type, [in] Windows.UI.Xaml.PropertyMetadata *default_metadata, [out, retval] Windows.UI.Xaml.DependencyProperty **result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.PropertyMetadata), + uuid(814ef30d-8d18-448a-8644-f2cb51e70380) + ] + interface IPropertyMetadata : IInspectable + { + [propget] HRESULT DefaultValue([out, retval] IInspectable **value); + [propget] HRESULT CreateDefaultValueCallback([out, retval] Windows.UI.Xaml.CreateDefaultValueCallback **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.PropertyMetadata), + uuid(c1b81cc0-57cd-4f2f-b0a9-e1801b28f76b) + ] + interface IPropertyMetadataFactory : IInspectable + { + HRESULT CreateInstanceWithDefaultValue([in] IInspectable *default_value, [in] IInspectable *base_interface, [out] IInspectable **inner_interface, [out, retval] Windows.UI.Xaml.PropertyMetadata **value); + HRESULT CreateInstanceWithDefaultValueAndCallback([in] IInspectable *default_value, [in] Windows.UI.Xaml.PropertyChangedCallback *property_changed_callback, [in] IInspectable* base_interface, [out] IInspectable **inner_interface, [out, retval] Windows.UI.Xaml.PropertyMetadata **value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.UI.Xaml.PropertyMetadata), + uuid(3b01077a-6e06-45e9-8b5c-af243458c062) + ] + interface IPropertyMetadataStatics : IInspectable + { + [default_overload] [overload("Create")] HRESULT CreateWithDefaultValue([in] IInspectable *default_value, [out, retval] Windows.UI.Xaml.PropertyMetadata **result); + [default_overload] [overload("Create")] HRESULT CreateWithDefaultValueAndCallback([in] IInspectable *default_value, [in] Windows.UI.Xaml.PropertyChangedCallback *property_changed_callback, [out, retval] Windows.UI.Xaml.PropertyMetadata **result); + [overload("Create")] HRESULT CreateWithFactory([in] Windows.UI.Xaml.CreateDefaultValueCallback *create_default_value_callback, [out, retval] Windows.UI.Xaml.PropertyMetadata **result); + [overload("Create")] HRESULT CreateWithFactoryAndCallback([in] Windows.UI.Xaml.CreateDefaultValueCallback *create_default_value_callback, [in] Windows.UI.Xaml.PropertyChangedCallback *property_changed_callback, [out, retval] Windows.UI.Xaml.PropertyMetadata **result); + } + + + [ + composable(Windows.UI.Xaml.IDataTemplateKeyFactory, public, Windows.Foundation.UniversalApiContract, 1.0), + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass DataTemplateKey + { + [default] interface Windows.UI.Xaml.IDataTemplateKey; + } + + [ + composable(Windows.UI.Xaml.IDependencyObjectFactory, protected, Windows.Foundation.UniversalApiContract, 1.0), + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass DependencyObject + { + [default] interface Windows.UI.Xaml.IDependencyObject; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.UI.Xaml.IDependencyObject2; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.UI.Xaml.IDependencyPropertyStatics, Windows.Foundation.UniversalApiContract, 1.0), + threading(both) + ] + runtimeclass DependencyProperty + { + [default] interface Windows.UI.Xaml.IDependencyProperty; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass DependencyPropertyChangedEventArgs + { + [default] interface Windows.UI.Xaml.IDependencyPropertyChangedEventArgs; + } + + [ + composable(Windows.UI.Xaml.IPropertyMetadataFactory, public, Windows.Foundation.UniversalApiContract, 1.0), + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.UI.Xaml.IPropertyMetadataStatics, Windows.Foundation.UniversalApiContract, 1.0), + threading(both) + ] + runtimeclass PropertyMetadata + { + [default] interface Windows.UI.Xaml.IPropertyMetadata; + } +}