2 * Copyright (C) 2023 Mohamad Al-Jaf
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #pragma winrt ns_prefix
23 import
"inspectable.idl";
24 import
"asyncinfo.idl";
25 import
"eventtoken.idl";
26 import
"windowscontracts.idl";
27 import
"windows.foundation.idl";
28 import
"windows.system.idl";
29 import
"windows.ui.idl";
30 /* import "windows.ui.composition.idl"; */
31 /* import "windows.ui.input.idl"; */
32 /* import "windows.ui.input.inking.idl"; */
33 /* import "windows.ui.input.inking.core.idl"; */
34 /* import "windows.ui.popups.idl"; */
36 namespace Windows.UI.Core
{
37 typedef enum CoreDispatcherPriority CoreDispatcherPriority
;
38 typedef enum CoreProcessEventsOption CoreProcessEventsOption
;
40 interface ICoreAcceleratorKeys
;
41 interface ICoreDispatcher
;
42 interface ICoreDispatcher2
;
43 interface ICoreDispatcherWithTaskPriority
;
44 interface IIdleDispatchedHandlerArgs
;
46 runtimeclass AcceleratorKeyEventArgs
;
47 runtimeclass CoreDispatcher
;
48 runtimeclass IdleDispatchedHandlerArgs
;
51 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
53 enum CoreDispatcherPriority
55 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
63 contract
(Windows.Foundation.UniversalApiContract
, 1.0)
65 enum CoreProcessEventsOption
67 ProcessOneAndAllPending
= 0,
68 ProcessOneIfPresent
= 1,
70 ProcessAllIfPresent
= 3,
74 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
75 uuid(d1f276c4
-98d8
-4636-bf49
-eb79507548e9
)
77 delegate
HRESULT DispatchedHandler
();
80 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
81 uuid(a42b0c24
-7f21
-4abc
-99c1
-8f01007f0880
)
83 delegate
HRESULT IdleDispatchedHandler
([in] Windows.UI.Core.IdleDispatchedHandlerArgs
*e
);
86 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
87 exclusiveto
(Windows.UI.Core.CoreDispatcher
),
88 uuid(60db2fa8
-b705
-4fde
-a7d6
-ebbb1891d39e
)
90 interface ICoreDispatcher
: IInspectable
91 requires Windows.UI.Core.ICoreAcceleratorKeys
93 [propget] HRESULT HasThreadAccess
([out, retval] boolean *value
);
94 HRESULT ProcessEvents
([in] Windows.UI.Core.CoreProcessEventsOption options
);
95 HRESULT RunAsync
([in] Windows.UI.Core.CoreDispatcherPriority priority
, [in] Windows.UI.Core.DispatchedHandler
*callback,
96 [out, retval] Windows.Foundation.IAsyncAction
**action
);
97 HRESULT RunIdleAsync
([in] Windows.UI.Core.IdleDispatchedHandler
*callback, [out, retval] Windows.Foundation.IAsyncAction
**action
);
101 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
102 exclusiveto
(Windows.UI.Core.IdleDispatchedHandlerArgs
),
103 uuid(98bb6a24
-dc1c
-43cb
-b4ed
-d1c0eb2391f3
)
105 interface IIdleDispatchedHandlerArgs
: IInspectable
107 [propget] HRESULT IsDispatcherIdle
([out, retval] boolean *value
);
111 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
112 marshaling_behavior
(agile
)
114 runtimeclass CoreDispatcher
116 [default] interface Windows.UI.Core.ICoreDispatcher
;
117 interface Windows.UI.Core.ICoreAcceleratorKeys
;
118 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.UI.Core.ICoreDispatcherWithTaskPriority
;
119 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.UI.Core.ICoreDispatcher2
;
123 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
124 marshaling_behavior
(standard
)
126 runtimeclass IdleDispatchedHandlerArgs
128 [default] interface Windows.UI.Core.IIdleDispatchedHandlerArgs
;