krnl386.exe16: Don't overflow when calculating size.
[wine.git] / include / windows.system.idl
blob5ba5c3f86b3e903ceb81159f2e9c21ce598e5056
1 /*
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
19 #ifdef __WIDL__
20 #pragma winrt ns_prefix
21 #endif
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;
40 interface IUser;
41 interface IUserStatics;
42 interface IUserChangedEventArgs;
43 interface IUserChangedEventArgs2;
45 runtimeclass DispatcherQueue;
46 runtimeclass DispatcherQueueController;
47 runtimeclass DispatcherQueueShutdownStartingEventArgs;
48 runtimeclass DispatcherQueueTimer;
49 runtimeclass User;
50 runtimeclass UserChangedEventArgs;
52 declare
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
64 Low = -10,
65 Normal = 0,
66 High = 10,
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);
156 HRESULT Start();
157 HRESULT Stop();
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),
176 threading(both)
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),
188 threading(both)
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),
217 threading(both),
219 runtimeclass User
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;