| /* |
| * Copyright (C) 2023 Mohamad Al-Jaf |
| * |
| * 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.ui.idl"; |
| /* import "windows.ui.composition.idl"; */ |
| /* import "windows.ui.input.idl"; */ |
| /* import "windows.ui.input.inking.idl"; */ |
| /* import "windows.ui.input.inking.core.idl"; */ |
| /* import "windows.ui.popups.idl"; */ |
| |
| namespace Windows.UI.Core { |
| typedef enum CoreDispatcherPriority CoreDispatcherPriority; |
| typedef enum CoreProcessEventsOption CoreProcessEventsOption; |
| |
| interface ICoreAcceleratorKeys; |
| interface ICoreDispatcher; |
| interface ICoreDispatcher2; |
| interface ICoreDispatcherWithTaskPriority; |
| interface IIdleDispatchedHandlerArgs; |
| |
| runtimeclass AcceleratorKeyEventArgs; |
| runtimeclass CoreDispatcher; |
| runtimeclass IdleDispatchedHandlerArgs; |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0) |
| ] |
| enum CoreDispatcherPriority |
| { |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] |
| Idle = -2, |
| Low = -1, |
| Normal = 0, |
| High = 1, |
| }; |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0) |
| ] |
| enum CoreProcessEventsOption |
| { |
| ProcessOneAndAllPending = 0, |
| ProcessOneIfPresent = 1, |
| ProcessUntilQuit = 2, |
| ProcessAllIfPresent = 3, |
| }; |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| uuid(d1f276c4-98d8-4636-bf49-eb79507548e9) |
| ] |
| delegate HRESULT DispatchedHandler(); |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| uuid(a42b0c24-7f21-4abc-99c1-8f01007f0880) |
| ] |
| delegate HRESULT IdleDispatchedHandler([in] Windows.UI.Core.IdleDispatchedHandlerArgs *e); |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| exclusiveto(Windows.UI.Core.CoreDispatcher), |
| uuid(60db2fa8-b705-4fde-a7d6-ebbb1891d39e) |
| ] |
| interface ICoreDispatcher : IInspectable |
| requires Windows.UI.Core.ICoreAcceleratorKeys |
| { |
| [propget] HRESULT HasThreadAccess([out, retval] boolean *value); |
| HRESULT ProcessEvents([in] Windows.UI.Core.CoreProcessEventsOption options); |
| HRESULT RunAsync([in] Windows.UI.Core.CoreDispatcherPriority priority, [in] Windows.UI.Core.DispatchedHandler *callback, |
| [out, retval] Windows.Foundation.IAsyncAction **action); |
| HRESULT RunIdleAsync([in] Windows.UI.Core.IdleDispatchedHandler *callback, [out, retval] Windows.Foundation.IAsyncAction **action); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| exclusiveto(Windows.UI.Core.IdleDispatchedHandlerArgs), |
| uuid(98bb6a24-dc1c-43cb-b4ed-d1c0eb2391f3) |
| ] |
| interface IIdleDispatchedHandlerArgs : IInspectable |
| { |
| [propget] HRESULT IsDispatcherIdle([out, retval] boolean *value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| marshaling_behavior(agile) |
| ] |
| runtimeclass CoreDispatcher |
| { |
| [default] interface Windows.UI.Core.ICoreDispatcher; |
| interface Windows.UI.Core.ICoreAcceleratorKeys; |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.UI.Core.ICoreDispatcherWithTaskPriority; |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.UI.Core.ICoreDispatcher2; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| marshaling_behavior(standard) |
| ] |
| runtimeclass IdleDispatchedHandlerArgs |
| { |
| [default] interface Windows.UI.Core.IIdleDispatchedHandlerArgs; |
| } |
| } |