2 * Copyright 2021 RĂ©mi Bernon for CodeWeavers
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";
29 namespace Windows.System
31 typedef enum DispatcherQueuePriority DispatcherQueuePriority
;
33 interface IDispatcherQueue
;
34 interface IDispatcherQueue2
;
35 interface IDispatcherQueueController
;
36 interface IDispatcherQueueControllerStatics
;
37 interface IDispatcherQueueShutdownStartingEventArgs
;
38 interface IDispatcherQueueStatics
;
39 interface IDispatcherQueueTimer
;
41 interface IUserStatics
;
42 interface IUserChangedEventArgs
;
43 interface IUserChangedEventArgs2
;
45 runtimeclass DispatcherQueue
;
46 runtimeclass DispatcherQueueController
;
47 runtimeclass DispatcherQueueShutdownStartingEventArgs
;
48 runtimeclass DispatcherQueueTimer
;
50 runtimeclass UserChangedEventArgs
;
54 interface Windows.Foundation.TypedEventHandler
<Windows.System.DispatcherQueue
*, IInspectable
*>;
55 interface Windows.Foundation.TypedEventHandler
<Windows.System.DispatcherQueue
*, Windows.System.DispatcherQueueShutdownStartingEventArgs
*>;
56 interface Windows.Foundation.TypedEventHandler
<Windows.System.DispatcherQueueTimer
*, IInspectable
*>;
60 contract
(Windows.Foundation.UniversalApiContract
, 5.0)
62 enum DispatcherQueuePriority
70 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
71 uuid(dfa2dc9c
-1a2d
-4917-98f2
-939af1d6e0c8
)
73 delegate
HRESULT DispatcherQueueHandler
();
76 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
77 exclusiveto
(Windows.System.DispatcherQueue
),
78 uuid(603e88e4
-a338
-4ffe
-a457
-a5cfb9ceb899
)
80 interface IDispatcherQueue
: IInspectable
82 HRESULT CreateTimer
([out, retval] Windows.System.DispatcherQueueTimer
**result
);
83 [overload
("TryEnqueue")] HRESULT TryEnqueue
([in] Windows.System.DispatcherQueueHandler
*callback, [out, retval] boolean *result
);
84 [overload
("TryEnqueue")] HRESULT TryEnqueueWithPriority
([in] Windows.System.DispatcherQueuePriority priority
, [in] Windows.System.DispatcherQueueHandler
*callback,
85 [out, retval] boolean *result
);
86 [eventadd
] HRESULT ShutdownStarting
([in] Windows.Foundation.TypedEventHandler
<Windows.System.DispatcherQueue
*, Windows.System.DispatcherQueueShutdownStartingEventArgs
*> *handler
,
87 [out, retval] EventRegistrationToken
*token
);
88 [eventremove
] HRESULT ShutdownStarting
([in] EventRegistrationToken token
);
89 [eventadd
] HRESULT ShutdownCompleted
([in] Windows.Foundation.TypedEventHandler
<Windows.System.DispatcherQueue
*, IInspectable
*> *handler
, [out, retval] EventRegistrationToken
*token
);
90 [eventremove
] HRESULT ShutdownCompleted
([in] EventRegistrationToken token
);
94 contract
(Windows.Foundation.UniversalApiContract
, 8.0),
95 exclusiveto
(Windows.System.DispatcherQueue
),
96 uuid(c822c647
-30ef
-506e
-bd1e
-a647ae6675ff
)
98 interface IDispatcherQueue2
: IInspectable
100 [propget] HRESULT HasThreadAccess
([out, retval] boolean *value
);
104 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
105 exclusiveto
(Windows.System.DispatcherQueueController
),
106 uuid(22f34e66
-50db
-4e36
-a98d
-61c01b384d20
)
108 interface IDispatcherQueueController
: IInspectable
110 [propget] HRESULT DispatcherQueue
([out, retval] Windows.System.DispatcherQueue
**value
);
111 HRESULT ShutdownQueueAsync
([out, retval] Windows.Foundation.IAsyncAction
**operation
);
115 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
116 exclusiveto
(Windows.System.DispatcherQueueController
),
117 uuid(0a6c98e0
-5198-49a2
-a313
-3f70d1f13c27
)
119 interface IDispatcherQueueControllerStatics
: IInspectable
121 HRESULT CreateOnDedicatedThread
([out, retval] Windows.System.DispatcherQueueController
**result
);
125 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
126 exclusiveto
(Windows.System.DispatcherQueueShutdownStartingEventArgs
),
127 uuid(c4724c4c
-ff97
-40c0
-a226
-cc0aaa545e89
)
129 interface IDispatcherQueueShutdownStartingEventArgs
: IInspectable
131 HRESULT GetDeferral
([out, retval] Windows.Foundation.Deferral
**result
);
135 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
136 exclusiveto
(Windows.System.DispatcherQueue
),
137 uuid(a96d83d7
-9371-4517-9245-d0824ac12c74
)
139 interface IDispatcherQueueStatics
: IInspectable
141 HRESULT GetForCurrentThread
([out, retval] Windows.System.DispatcherQueue
**result
);
145 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
146 exclusiveto
(Windows.System.DispatcherQueueTimer
),
147 uuid(5feabb1d
-a31c
-4727-b1ac
-37454649d56a
)
149 interface IDispatcherQueueTimer
: IInspectable
151 [propget] HRESULT Interval
([out, retval] Windows.Foundation.TimeSpan
*value
);
152 [propput] HRESULT Interval
([in] Windows.Foundation.TimeSpan value
);
153 [propget] HRESULT IsRunning
([out, retval] boolean *value
);
154 [propget] HRESULT IsRepeating
([out, retval] boolean *value
);
155 [propput] HRESULT IsRepeating
([in] boolean value
);
158 [eventadd
] HRESULT Tick
([in] Windows.Foundation.TypedEventHandler
<Windows.System.DispatcherQueueTimer
*, IInspectable
*> *handler
, [out, retval] EventRegistrationToken
*token
);
159 [eventremove
] HRESULT Tick
([in] EventRegistrationToken token
);
163 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
164 exclusiveto
(Windows.System.UserChangedEventArgs
),
165 uuid(086459dc
-18c6
-48db
-bc99
-724fb9203ccc
)
167 interface IUserChangedEventArgs
: IInspectable
169 [propget] HRESULT User
([out, retval] Windows.System.User
**value
);
173 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
174 marshaling_behavior
(agile
),
175 static
(Windows.System.IDispatcherQueueStatics
, Windows.Foundation.UniversalApiContract
, 5.0),
178 runtimeclass DispatcherQueue
180 [default] interface Windows.System.IDispatcherQueue
;
181 [contract
(Windows.Foundation.UniversalApiContract
, 8.0)] interface Windows.System.IDispatcherQueue2
;
185 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
186 marshaling_behavior
(agile
),
187 static
(Windows.System.IDispatcherQueueControllerStatics
, Windows.Foundation.UniversalApiContract
, 5.0),
190 runtimeclass DispatcherQueueController
192 [default] interface Windows.System.IDispatcherQueueController
;
196 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
197 marshaling_behavior
(agile
)
199 runtimeclass DispatcherQueueShutdownStartingEventArgs
201 [default] interface Windows.System.IDispatcherQueueShutdownStartingEventArgs
;
205 contract
(Windows.Foundation.UniversalApiContract
, 5.0),
206 marshaling_behavior
(agile
)
208 runtimeclass DispatcherQueueTimer
210 [default] interface Windows.System.IDispatcherQueueTimer
;
214 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
215 marshaling_behavior
(agile
),
216 static
(Windows.System.IUserStatics
, Windows.Foundation.UniversalApiContract
, 1.0),
221 [default] interface Windows.System.IUser
;
225 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
226 marshaling_behavior
(agile
)
228 runtimeclass UserChangedEventArgs
230 [default] interface Windows.System.IUserChangedEventArgs
;
231 [contract
(Windows.Foundation.UniversalApiContract
, 10.0)] interface Windows.System.IUserChangedEventArgs2
;