For React Native.
From: Zhiyi Zhang zzhang@codeweavers.com
--- include/Makefile.in | 1 + include/windows.ui.viewmanagement.core.idl | 292 +++++++++++++++++++++ 2 files changed, 293 insertions(+) create mode 100644 include/windows.ui.viewmanagement.core.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 37755dd05e4..ba3ff3471b1 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -920,6 +920,7 @@ SOURCES = \ windows.ui.idl \ windows.ui.input.idl \ windows.ui.notifications.idl \ + windows.ui.viewmanagement.core.idl \ windows.ui.viewmanagement.idl \ windows.ui.xaml.hosting.desktopwindowxamlsource.idl \ windows.ui.xaml.idl \ diff --git a/include/windows.ui.viewmanagement.core.idl b/include/windows.ui.viewmanagement.core.idl new file mode 100644 index 00000000000..be392aa40fe --- /dev/null +++ b/include/windows.ui.viewmanagement.core.idl @@ -0,0 +1,292 @@ +/* + * Copyright 2025 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 + +#ifndef DO_NO_IMPORTS +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +import "windows.ui.idl"; +#endif + +namespace Windows.UI.ViewManagement.Core +{ + typedef enum CoreInputViewKind CoreInputViewKind; + typedef enum CoreInputViewOcclusionKind CoreInputViewOcclusionKind; + typedef enum CoreInputViewXYFocusTransferDirection CoreInputViewXYFocusTransferDirection; + + interface ICoreInputView; + interface ICoreInputView2; + interface ICoreInputView3; + interface ICoreInputView4; + interface ICoreInputViewHidingEventArgs; + interface ICoreInputViewOcclusion; + interface ICoreInputViewOcclusionsChangedEventArgs; + interface ICoreInputViewShowingEventArgs; + interface ICoreInputViewStatics; + interface ICoreInputViewStatics2; + interface ICoreInputViewTransferringXYFocusEventArgs; + + runtimeclass CoreInputView; + runtimeclass CoreInputViewHidingEventArgs; + runtimeclass CoreInputViewOcclusion; + runtimeclass CoreInputViewOcclusionsChangedEventArgs; + runtimeclass CoreInputViewShowingEventArgs; + runtimeclass CoreInputViewTransferringXYFocusEventArgs; + + declare + { + interface Windows.Foundation.Collections.IIterable<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *>; + interface Windows.Foundation.Collections.IIterator<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *>; + interface Windows.Foundation.Collections.IVectorView<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *>; + interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, IInspectable *>; + interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewHidingEventArgs *>; + interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewOcclusionsChangedEventArgs *>; + interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewShowingEventArgs *>; + interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewTransferringXYFocusEventArgs *>; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 7.0) + ] + enum CoreInputViewKind + { + Default = 0, + Keyboard = 1, + Handwriting = 2, + Emoji = 3, + [contract(Windows.Foundation.UniversalApiContract, 10.0)] Symbols = 4 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0) + ] + enum CoreInputViewOcclusionKind + { + Docked = 0, + Floating = 1, + Overlay = 2 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 6.0) + ] + enum CoreInputViewXYFocusTransferDirection + { + Up = 0, + Right = 1, + Down = 2, + Left = 3 + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView), + uuid(c770cd7a-7001-4c32-bf94-25c1f554cbf1) + ] + interface ICoreInputView : IInspectable + { + [eventadd] HRESULT OcclusionsChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewOcclusionsChangedEventArgs *> *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT OcclusionsChanged([in] EventRegistrationToken token); + HRESULT GetCoreInputViewOcclusions([out, retval] Windows.Foundation.Collections.IVectorView<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *> **result); + HRESULT TryShowPrimaryView([out, retval] boolean *result); + HRESULT TryHidePrimaryView([out, retval] boolean *result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 6.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView), + uuid(0ed726c1-e09a-4ae8-aedf-dfa4857d1a01) + ] + interface ICoreInputView2 : IInspectable + { + [eventadd] HRESULT XYFocusTransferringFromPrimaryView([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewTransferringXYFocusEventArgs *> *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT XYFocusTransferringFromPrimaryView([in] EventRegistrationToken token); + [eventadd] HRESULT XYFocusTransferredToPrimaryView([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, IInspectable *> *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT XYFocusTransferredToPrimaryView([in] EventRegistrationToken token); + HRESULT TryTransferXYFocusToPrimaryView([in] Windows.Foundation.Rect origin, [in] Windows.UI.ViewManagement.Core.CoreInputViewXYFocusTransferDirection direction, [out, retval] boolean *result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 7.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView), + uuid(bc941653-3ab9-4849-8f58-46e7f0353cfc) + ] + interface ICoreInputView3 : IInspectable + { + [overload("TryShow")] HRESULT TryShow([out, retval] boolean *result); + [overload("TryShow")] HRESULT TryShowWithKind([in] Windows.UI.ViewManagement.Core.CoreInputViewKind type, [out, retval] boolean *result); + HRESULT TryHide([out, retval] boolean *result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView), + uuid(002863d6-d9ef-57eb-8cef-77f6ce1b7ee7) + ] + interface ICoreInputView4 : IInspectable + { + [eventadd] HRESULT PrimaryViewShowing([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewShowingEventArgs *> *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT PrimaryViewShowing([in] EventRegistrationToken token); + [eventadd] HRESULT PrimaryViewHiding([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewHidingEventArgs *> *handler, [out, retval] EventRegistrationToken *token); + [eventremove] HRESULT PrimaryViewHiding([in] EventRegistrationToken token); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewHidingEventArgs), + uuid(eada47bd-bac5-5336-848d-41083584daad) + ] + interface ICoreInputViewHidingEventArgs : IInspectable + { + HRESULT TryCancel([out, retval] boolean *result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewOcclusion), + uuid(cc36ce06-3865-4177-b5f5-8b65e0b9ce84) + ] + interface ICoreInputViewOcclusion : IInspectable + { + [propget] HRESULT OccludingRect([out, retval] Windows.Foundation.Rect *rect); + [propget] HRESULT OcclusionKind([out, retval] Windows.UI.ViewManagement.Core.CoreInputViewOcclusionKind *kind); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewOcclusionsChangedEventArgs), + uuid(be1027e8-b3ee-4df7-9554-89cdc66082c2) + ] + interface ICoreInputViewOcclusionsChangedEventArgs : IInspectable + { + [propget] HRESULT Occlusions([out, retval] Windows.Foundation.Collections.IVectorView<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *> **value); + [propget] HRESULT Handled([out, retval] boolean *value); + [propput] HRESULT Handled([in] boolean value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewShowingEventArgs), + uuid(ca52261b-fb9e-5daf-a98c-262b8b76af50) + ] + interface ICoreInputViewShowingEventArgs : IInspectable + { + HRESULT TryCancel([out, retval] boolean *result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView), + uuid(7d9b97cd-edbe-49cf-a54f-337de052907f) + ] + interface ICoreInputViewStatics : IInspectable + { + HRESULT GetForCurrentView([out, retval] Windows.UI.ViewManagement.Core.CoreInputView **result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 8.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView), + uuid(7ebc0862-d049-4e52-87b0-1e90e98c49ed) + ] + interface ICoreInputViewStatics2 : IInspectable + { + HRESULT GetForUIContext([in] Windows.UI.UIContext *context, [out, retval] Windows.UI.ViewManagement.Core.CoreInputView **result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 6.0), + exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewTransferringXYFocusEventArgs), + uuid(04de169f-ba02-4850-8b55-d82d03ba6d7f) + ] + interface ICoreInputViewTransferringXYFocusEventArgs : IInspectable + { + [propget] HRESULT Origin([out, retval] Windows.Foundation.Rect *value); + [propget] HRESULT Direction([out, retval] Windows.UI.ViewManagement.Core.CoreInputViewXYFocusTransferDirection *value); + [propput] HRESULT TransferHandled([in] boolean value); + [propget] HRESULT TransferHandled([out, retval] boolean *value); + [propput] HRESULT KeepPrimaryViewVisible([in] boolean value); + [propget] HRESULT KeepPrimaryViewVisible([out, retval] boolean *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0), + marshaling_behavior(agile), + static(Windows.UI.ViewManagement.Core.ICoreInputViewStatics, Windows.Foundation.UniversalApiContract, 5.0), + static(Windows.UI.ViewManagement.Core.ICoreInputViewStatics2, Windows.Foundation.UniversalApiContract, 8.0), + threading(both) + ] + runtimeclass CoreInputView + { + [default] interface Windows.UI.ViewManagement.Core.ICoreInputView; + [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.UI.ViewManagement.Core.ICoreInputView2; + [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.UI.ViewManagement.Core.ICoreInputView3; + [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.UI.ViewManagement.Core.ICoreInputView4; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + marshaling_behavior(agile) + ] + runtimeclass CoreInputViewHidingEventArgs + { + [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewHidingEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0), + marshaling_behavior(agile) + ] + runtimeclass CoreInputViewOcclusion + { + [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewOcclusion; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 5.0), + marshaling_behavior(agile) + ] + runtimeclass CoreInputViewOcclusionsChangedEventArgs + { + [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewOcclusionsChangedEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 10.0), + marshaling_behavior(agile) + ] + runtimeclass CoreInputViewShowingEventArgs + { + [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewShowingEventArgs; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 6.0), + marshaling_behavior(agile) + ] + runtimeclass CoreInputViewTransferringXYFocusEventArgs + { + [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewTransferringXYFocusEventArgs; + } +}