1 /*** Autogenerated by WIDL 1.6 from include/windows.system.threading.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __windows_system_threading_h__
16 #define __windows_system_threading_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __TimerElapsedHandler_FWD_DEFINED__
21 #define __TimerElapsedHandler_FWD_DEFINED__
22 typedef interface TimerElapsedHandler TimerElapsedHandler;
23 #endif
24 
25 #ifndef __TimerDestroyedHandler_FWD_DEFINED__
26 #define __TimerDestroyedHandler_FWD_DEFINED__
27 typedef interface TimerDestroyedHandler TimerDestroyedHandler;
28 #endif
29 
30 #ifndef __WorkItemHandler_FWD_DEFINED__
31 #define __WorkItemHandler_FWD_DEFINED__
32 typedef interface WorkItemHandler WorkItemHandler;
33 #endif
34 
35 #ifndef __IThreadPoolStatics_FWD_DEFINED__
36 #define __IThreadPoolStatics_FWD_DEFINED__
37 typedef interface IThreadPoolStatics IThreadPoolStatics;
38 #endif
39 
40 #ifndef __IThreadPoolTimer_FWD_DEFINED__
41 #define __IThreadPoolTimer_FWD_DEFINED__
42 typedef interface IThreadPoolTimer IThreadPoolTimer;
43 #endif
44 
45 #ifndef __IThreadPoolTimerStatics_FWD_DEFINED__
46 #define __IThreadPoolTimerStatics_FWD_DEFINED__
47 typedef interface IThreadPoolTimerStatics IThreadPoolTimerStatics;
48 #endif
49 
50 /* Headers for imported files */
51 
52 #include <inspectable.h>
53 #include <windows.foundation.h>
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #endif
58 
59 #ifndef __IAsyncAction_FWD_DEFINED__
60 #define __IAsyncAction_FWD_DEFINED__
61 typedef interface IAsyncAction IAsyncAction;
62 #endif
63 
64 struct TimeSpan;
65 
66 enum WorkItemPriority;
67 
68 enum WorkItemOptions;
69 
70 #ifndef __TimerElapsedHandler_FWD_DEFINED__
71 #define __TimerElapsedHandler_FWD_DEFINED__
72 typedef interface TimerElapsedHandler TimerElapsedHandler;
73 #endif
74 
75 #ifndef __TimerDestroyedHandler_FWD_DEFINED__
76 #define __TimerDestroyedHandler_FWD_DEFINED__
77 typedef interface TimerDestroyedHandler TimerDestroyedHandler;
78 #endif
79 
80 #ifndef __WorkItemHandler_FWD_DEFINED__
81 #define __WorkItemHandler_FWD_DEFINED__
82 typedef interface WorkItemHandler WorkItemHandler;
83 #endif
84 
85 #ifndef __IThreadPoolStatics_FWD_DEFINED__
86 #define __IThreadPoolStatics_FWD_DEFINED__
87 typedef interface IThreadPoolStatics IThreadPoolStatics;
88 #endif
89 
90 #ifndef __IThreadPoolTimer_FWD_DEFINED__
91 #define __IThreadPoolTimer_FWD_DEFINED__
92 typedef interface IThreadPoolTimer IThreadPoolTimer;
93 #endif
94 
95 #ifndef __IThreadPoolTimerStatics_FWD_DEFINED__
96 #define __IThreadPoolTimerStatics_FWD_DEFINED__
97 typedef interface IThreadPoolTimerStatics IThreadPoolTimerStatics;
98 #endif
99 
100 typedef enum WorkItemPriority {
101     Low = -1,
102     Normal = 0,
103     High = 1
104 } WorkItemPriority;
105 typedef enum WorkItemOptions {
106     None = 0,
107     TimeSliced = 1
108 } WorkItemOptions;
109 typedef struct TimeSpan {
110     INT64 Duration;
111 } TimeSpan;
112 /*****************************************************************************
113  * TimerElapsedHandler interface
114  */
115 #ifndef __TimerElapsedHandler_INTERFACE_DEFINED__
116 #define __TimerElapsedHandler_INTERFACE_DEFINED__
117 
118 DEFINE_GUID(IID_TimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 0x71,0x18,0x4c,0x55,0x6e,0x43);
119 #if defined(__cplusplus) && !defined(CINTERFACE)
120 MIDL_INTERFACE("faaea667-fbeb-49cb-adb2-71184c556e43")
121 TimerElapsedHandler : public IUnknown
122 {
123     virtual HRESULT STDMETHODCALLTYPE Invoke(
124         IThreadPoolTimer *timer) = 0;
125 
126 };
127 #ifdef __CRT_UUID_DECL
128 __CRT_UUID_DECL(TimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 0x71,0x18,0x4c,0x55,0x6e,0x43)
129 #endif
130 #else
131 typedef struct TimerElapsedHandlerVtbl {
132     BEGIN_INTERFACE
133 
134     /*** IUnknown methods ***/
135     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
136         TimerElapsedHandler* This,
137         REFIID riid,
138         void **ppvObject);
139 
140     ULONG (STDMETHODCALLTYPE *AddRef)(
141         TimerElapsedHandler* This);
142 
143     ULONG (STDMETHODCALLTYPE *Release)(
144         TimerElapsedHandler* This);
145 
146     /*** TimerElapsedHandler methods ***/
147     HRESULT (STDMETHODCALLTYPE *Invoke)(
148         TimerElapsedHandler* This,
149         IThreadPoolTimer *timer);
150 
151     END_INTERFACE
152 } TimerElapsedHandlerVtbl;
153 interface TimerElapsedHandler {
154     CONST_VTBL TimerElapsedHandlerVtbl* lpVtbl;
155 };
156 
157 #ifdef COBJMACROS
158 #ifndef WIDL_C_INLINE_WRAPPERS
159 /*** IUnknown methods ***/
160 #define TimerElapsedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
161 #define TimerElapsedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
162 #define TimerElapsedHandler_Release(This) (This)->lpVtbl->Release(This)
163 /*** TimerElapsedHandler methods ***/
164 #define TimerElapsedHandler_Invoke(This,timer) (This)->lpVtbl->Invoke(This,timer)
165 #else
166 /*** IUnknown methods ***/
167 static FORCEINLINE HRESULT TimerElapsedHandler_QueryInterface(TimerElapsedHandler* This,REFIID riid,void **ppvObject) {
168     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
169 }
170 static FORCEINLINE ULONG TimerElapsedHandler_AddRef(TimerElapsedHandler* This) {
171     return This->lpVtbl->AddRef(This);
172 }
173 static FORCEINLINE ULONG TimerElapsedHandler_Release(TimerElapsedHandler* This) {
174     return This->lpVtbl->Release(This);
175 }
176 /*** TimerElapsedHandler methods ***/
177 static FORCEINLINE HRESULT TimerElapsedHandler_Invoke(TimerElapsedHandler* This,IThreadPoolTimer *timer) {
178     return This->lpVtbl->Invoke(This,timer);
179 }
180 #endif
181 #endif
182 
183 #endif
184 
185 HRESULT STDMETHODCALLTYPE TimerElapsedHandler_Invoke_Proxy(
186     TimerElapsedHandler* This,
187     IThreadPoolTimer *timer);
188 void __RPC_STUB TimerElapsedHandler_Invoke_Stub(
189     IRpcStubBuffer* This,
190     IRpcChannelBuffer* pRpcChannelBuffer,
191     PRPC_MESSAGE pRpcMessage,
192     DWORD* pdwStubPhase);
193 
194 #endif  /* __TimerElapsedHandler_INTERFACE_DEFINED__ */
195 
196 /*****************************************************************************
197  * TimerDestroyedHandler interface
198  */
199 #ifndef __TimerDestroyedHandler_INTERFACE_DEFINED__
200 #define __TimerDestroyedHandler_INTERFACE_DEFINED__
201 
202 DEFINE_GUID(IID_TimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 0xfb,0x50,0x94,0xee,0xec,0x35);
203 #if defined(__cplusplus) && !defined(CINTERFACE)
204 MIDL_INTERFACE("34ed19fa-8384-4eb9-8209-fb5094eeec35")
205 TimerDestroyedHandler : public IUnknown
206 {
207     virtual HRESULT STDMETHODCALLTYPE Invoke(
208         IThreadPoolTimer *timer) = 0;
209 
210 };
211 #ifdef __CRT_UUID_DECL
212 __CRT_UUID_DECL(TimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 0xfb,0x50,0x94,0xee,0xec,0x35)
213 #endif
214 #else
215 typedef struct TimerDestroyedHandlerVtbl {
216     BEGIN_INTERFACE
217 
218     /*** IUnknown methods ***/
219     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
220         TimerDestroyedHandler* This,
221         REFIID riid,
222         void **ppvObject);
223 
224     ULONG (STDMETHODCALLTYPE *AddRef)(
225         TimerDestroyedHandler* This);
226 
227     ULONG (STDMETHODCALLTYPE *Release)(
228         TimerDestroyedHandler* This);
229 
230     /*** TimerDestroyedHandler methods ***/
231     HRESULT (STDMETHODCALLTYPE *Invoke)(
232         TimerDestroyedHandler* This,
233         IThreadPoolTimer *timer);
234 
235     END_INTERFACE
236 } TimerDestroyedHandlerVtbl;
237 interface TimerDestroyedHandler {
238     CONST_VTBL TimerDestroyedHandlerVtbl* lpVtbl;
239 };
240 
241 #ifdef COBJMACROS
242 #ifndef WIDL_C_INLINE_WRAPPERS
243 /*** IUnknown methods ***/
244 #define TimerDestroyedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
245 #define TimerDestroyedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
246 #define TimerDestroyedHandler_Release(This) (This)->lpVtbl->Release(This)
247 /*** TimerDestroyedHandler methods ***/
248 #define TimerDestroyedHandler_Invoke(This,timer) (This)->lpVtbl->Invoke(This,timer)
249 #else
250 /*** IUnknown methods ***/
251 static FORCEINLINE HRESULT TimerDestroyedHandler_QueryInterface(TimerDestroyedHandler* This,REFIID riid,void **ppvObject) {
252     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
253 }
254 static FORCEINLINE ULONG TimerDestroyedHandler_AddRef(TimerDestroyedHandler* This) {
255     return This->lpVtbl->AddRef(This);
256 }
257 static FORCEINLINE ULONG TimerDestroyedHandler_Release(TimerDestroyedHandler* This) {
258     return This->lpVtbl->Release(This);
259 }
260 /*** TimerDestroyedHandler methods ***/
261 static FORCEINLINE HRESULT TimerDestroyedHandler_Invoke(TimerDestroyedHandler* This,IThreadPoolTimer *timer) {
262     return This->lpVtbl->Invoke(This,timer);
263 }
264 #endif
265 #endif
266 
267 #endif
268 
269 HRESULT STDMETHODCALLTYPE TimerDestroyedHandler_Invoke_Proxy(
270     TimerDestroyedHandler* This,
271     IThreadPoolTimer *timer);
272 void __RPC_STUB TimerDestroyedHandler_Invoke_Stub(
273     IRpcStubBuffer* This,
274     IRpcChannelBuffer* pRpcChannelBuffer,
275     PRPC_MESSAGE pRpcMessage,
276     DWORD* pdwStubPhase);
277 
278 #endif  /* __TimerDestroyedHandler_INTERFACE_DEFINED__ */
279 
280 /*****************************************************************************
281  * WorkItemHandler interface
282  */
283 #ifndef __WorkItemHandler_INTERFACE_DEFINED__
284 #define __WorkItemHandler_INTERFACE_DEFINED__
285 
286 DEFINE_GUID(IID_WorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 0xb6,0x5f,0xc9,0x9d,0x17,0xfa);
287 #if defined(__cplusplus) && !defined(CINTERFACE)
288 MIDL_INTERFACE("1d1a8b8b-fa66-414f-9cbd-b65fc99d17fa")
289 WorkItemHandler : public IUnknown
290 {
291     virtual HRESULT STDMETHODCALLTYPE Invoke(
292         IAsyncAction *operation) = 0;
293 
294 };
295 #ifdef __CRT_UUID_DECL
296 __CRT_UUID_DECL(WorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 0xb6,0x5f,0xc9,0x9d,0x17,0xfa)
297 #endif
298 #else
299 typedef struct WorkItemHandlerVtbl {
300     BEGIN_INTERFACE
301 
302     /*** IUnknown methods ***/
303     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
304         WorkItemHandler* This,
305         REFIID riid,
306         void **ppvObject);
307 
308     ULONG (STDMETHODCALLTYPE *AddRef)(
309         WorkItemHandler* This);
310 
311     ULONG (STDMETHODCALLTYPE *Release)(
312         WorkItemHandler* This);
313 
314     /*** WorkItemHandler methods ***/
315     HRESULT (STDMETHODCALLTYPE *Invoke)(
316         WorkItemHandler* This,
317         IAsyncAction *operation);
318 
319     END_INTERFACE
320 } WorkItemHandlerVtbl;
321 interface WorkItemHandler {
322     CONST_VTBL WorkItemHandlerVtbl* lpVtbl;
323 };
324 
325 #ifdef COBJMACROS
326 #ifndef WIDL_C_INLINE_WRAPPERS
327 /*** IUnknown methods ***/
328 #define WorkItemHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
329 #define WorkItemHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
330 #define WorkItemHandler_Release(This) (This)->lpVtbl->Release(This)
331 /*** WorkItemHandler methods ***/
332 #define WorkItemHandler_Invoke(This,operation) (This)->lpVtbl->Invoke(This,operation)
333 #else
334 /*** IUnknown methods ***/
335 static FORCEINLINE HRESULT WorkItemHandler_QueryInterface(WorkItemHandler* This,REFIID riid,void **ppvObject) {
336     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
337 }
338 static FORCEINLINE ULONG WorkItemHandler_AddRef(WorkItemHandler* This) {
339     return This->lpVtbl->AddRef(This);
340 }
341 static FORCEINLINE ULONG WorkItemHandler_Release(WorkItemHandler* This) {
342     return This->lpVtbl->Release(This);
343 }
344 /*** WorkItemHandler methods ***/
345 static FORCEINLINE HRESULT WorkItemHandler_Invoke(WorkItemHandler* This,IAsyncAction *operation) {
346     return This->lpVtbl->Invoke(This,operation);
347 }
348 #endif
349 #endif
350 
351 #endif
352 
353 HRESULT STDMETHODCALLTYPE WorkItemHandler_Invoke_Proxy(
354     WorkItemHandler* This,
355     IAsyncAction *operation);
356 void __RPC_STUB WorkItemHandler_Invoke_Stub(
357     IRpcStubBuffer* This,
358     IRpcChannelBuffer* pRpcChannelBuffer,
359     PRPC_MESSAGE pRpcMessage,
360     DWORD* pdwStubPhase);
361 
362 #endif  /* __WorkItemHandler_INTERFACE_DEFINED__ */
363 
364 /*****************************************************************************
365  * IThreadPoolStatics interface
366  */
367 #ifndef __IThreadPoolStatics_INTERFACE_DEFINED__
368 #define __IThreadPoolStatics_INTERFACE_DEFINED__
369 
370 DEFINE_GUID(IID_IThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 0x93,0xeb,0xcb,0x9d,0xba,0x91);
371 #if defined(__cplusplus) && !defined(CINTERFACE)
372 MIDL_INTERFACE("b6bf67dd-84bd-44f8-ac1c-93ebcb9dba91")
373 IThreadPoolStatics : public IInspectable
374 {
375     virtual HRESULT STDMETHODCALLTYPE RunAsync(
376         WorkItemHandler *handler,
377         IAsyncAction **operation) = 0;
378 
379     virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAsync(
380         WorkItemHandler *handler,
381         WorkItemPriority priority,
382         IAsyncAction **operation) = 0;
383 
384     virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAndOptionsAsync(
385         WorkItemHandler *handler,
386         WorkItemPriority priority,
387         WorkItemOptions options,
388         IAsyncAction **operation) = 0;
389 
390 };
391 #ifdef __CRT_UUID_DECL
392 __CRT_UUID_DECL(IThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 0x93,0xeb,0xcb,0x9d,0xba,0x91)
393 #endif
394 #else
395 typedef struct IThreadPoolStaticsVtbl {
396     BEGIN_INTERFACE
397 
398     /*** IUnknown methods ***/
399     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
400         IThreadPoolStatics* This,
401         REFIID riid,
402         void **ppvObject);
403 
404     ULONG (STDMETHODCALLTYPE *AddRef)(
405         IThreadPoolStatics* This);
406 
407     ULONG (STDMETHODCALLTYPE *Release)(
408         IThreadPoolStatics* This);
409 
410     /*** IInspectable methods ***/
411     HRESULT (STDMETHODCALLTYPE *GetIids)(
412         IThreadPoolStatics* This,
413         ULONG *iidCount,
414         IID **iids);
415 
416     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
417         IThreadPoolStatics* This,
418         HSTRING *className);
419 
420     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
421         IThreadPoolStatics* This,
422         TrustLevel *trustLevel);
423 
424     /*** IThreadPoolStatics methods ***/
425     HRESULT (STDMETHODCALLTYPE *RunAsync)(
426         IThreadPoolStatics* This,
427         WorkItemHandler *handler,
428         IAsyncAction **operation);
429 
430     HRESULT (STDMETHODCALLTYPE *RunWithPriorityAsync)(
431         IThreadPoolStatics* This,
432         WorkItemHandler *handler,
433         WorkItemPriority priority,
434         IAsyncAction **operation);
435 
436     HRESULT (STDMETHODCALLTYPE *RunWithPriorityAndOptionsAsync)(
437         IThreadPoolStatics* This,
438         WorkItemHandler *handler,
439         WorkItemPriority priority,
440         WorkItemOptions options,
441         IAsyncAction **operation);
442 
443     END_INTERFACE
444 } IThreadPoolStaticsVtbl;
445 interface IThreadPoolStatics {
446     CONST_VTBL IThreadPoolStaticsVtbl* lpVtbl;
447 };
448 
449 #ifdef COBJMACROS
450 #ifndef WIDL_C_INLINE_WRAPPERS
451 /*** IUnknown methods ***/
452 #define IThreadPoolStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
453 #define IThreadPoolStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
454 #define IThreadPoolStatics_Release(This) (This)->lpVtbl->Release(This)
455 /*** IInspectable methods ***/
456 #define IThreadPoolStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
457 #define IThreadPoolStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
458 #define IThreadPoolStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
459 /*** IThreadPoolStatics methods ***/
460 #define IThreadPoolStatics_RunAsync(This,handler,operation) (This)->lpVtbl->RunAsync(This,handler,operation)
461 #define IThreadPoolStatics_RunWithPriorityAsync(This,handler,priority,operation) (This)->lpVtbl->RunWithPriorityAsync(This,handler,priority,operation)
462 #define IThreadPoolStatics_RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation) (This)->lpVtbl->RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation)
463 #else
464 /*** IUnknown methods ***/
465 static FORCEINLINE HRESULT IThreadPoolStatics_QueryInterface(IThreadPoolStatics* This,REFIID riid,void **ppvObject) {
466     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
467 }
468 static FORCEINLINE ULONG IThreadPoolStatics_AddRef(IThreadPoolStatics* This) {
469     return This->lpVtbl->AddRef(This);
470 }
471 static FORCEINLINE ULONG IThreadPoolStatics_Release(IThreadPoolStatics* This) {
472     return This->lpVtbl->Release(This);
473 }
474 /*** IInspectable methods ***/
475 static FORCEINLINE HRESULT IThreadPoolStatics_GetIids(IThreadPoolStatics* This,ULONG *iidCount,IID **iids) {
476     return This->lpVtbl->GetIids(This,iidCount,iids);
477 }
478 static FORCEINLINE HRESULT IThreadPoolStatics_GetRuntimeClassName(IThreadPoolStatics* This,HSTRING *className) {
479     return This->lpVtbl->GetRuntimeClassName(This,className);
480 }
481 static FORCEINLINE HRESULT IThreadPoolStatics_GetTrustLevel(IThreadPoolStatics* This,TrustLevel *trustLevel) {
482     return This->lpVtbl->GetTrustLevel(This,trustLevel);
483 }
484 /*** IThreadPoolStatics methods ***/
485 static FORCEINLINE HRESULT IThreadPoolStatics_RunAsync(IThreadPoolStatics* This,WorkItemHandler *handler,IAsyncAction **operation) {
486     return This->lpVtbl->RunAsync(This,handler,operation);
487 }
488 static FORCEINLINE HRESULT IThreadPoolStatics_RunWithPriorityAsync(IThreadPoolStatics* This,WorkItemHandler *handler,WorkItemPriority priority,IAsyncAction **operation) {
489     return This->lpVtbl->RunWithPriorityAsync(This,handler,priority,operation);
490 }
491 static FORCEINLINE HRESULT IThreadPoolStatics_RunWithPriorityAndOptionsAsync(IThreadPoolStatics* This,WorkItemHandler *handler,WorkItemPriority priority,WorkItemOptions options,IAsyncAction **operation) {
492     return This->lpVtbl->RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation);
493 }
494 #endif
495 #endif
496 
497 #endif
498 
499 HRESULT STDMETHODCALLTYPE IThreadPoolStatics_RunAsync_Proxy(
500     IThreadPoolStatics* This,
501     WorkItemHandler *handler,
502     IAsyncAction **operation);
503 void __RPC_STUB IThreadPoolStatics_RunAsync_Stub(
504     IRpcStubBuffer* This,
505     IRpcChannelBuffer* pRpcChannelBuffer,
506     PRPC_MESSAGE pRpcMessage,
507     DWORD* pdwStubPhase);
508 HRESULT STDMETHODCALLTYPE IThreadPoolStatics_RunWithPriorityAsync_Proxy(
509     IThreadPoolStatics* This,
510     WorkItemHandler *handler,
511     WorkItemPriority priority,
512     IAsyncAction **operation);
513 void __RPC_STUB IThreadPoolStatics_RunWithPriorityAsync_Stub(
514     IRpcStubBuffer* This,
515     IRpcChannelBuffer* pRpcChannelBuffer,
516     PRPC_MESSAGE pRpcMessage,
517     DWORD* pdwStubPhase);
518 HRESULT STDMETHODCALLTYPE IThreadPoolStatics_RunWithPriorityAndOptionsAsync_Proxy(
519     IThreadPoolStatics* This,
520     WorkItemHandler *handler,
521     WorkItemPriority priority,
522     WorkItemOptions options,
523     IAsyncAction **operation);
524 void __RPC_STUB IThreadPoolStatics_RunWithPriorityAndOptionsAsync_Stub(
525     IRpcStubBuffer* This,
526     IRpcChannelBuffer* pRpcChannelBuffer,
527     PRPC_MESSAGE pRpcMessage,
528     DWORD* pdwStubPhase);
529 
530 #endif  /* __IThreadPoolStatics_INTERFACE_DEFINED__ */
531 
532 /*****************************************************************************
533  * IThreadPoolTimer interface
534  */
535 #ifndef __IThreadPoolTimer_INTERFACE_DEFINED__
536 #define __IThreadPoolTimer_INTERFACE_DEFINED__
537 
538 DEFINE_GUID(IID_IThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 0x34,0x02,0xae,0x1f,0x9c,0xf2);
539 #if defined(__cplusplus) && !defined(CINTERFACE)
540 MIDL_INTERFACE("594ebe78-55ea-4a88-a50d-3402ae1f9cf2")
541 IThreadPoolTimer : public IInspectable
542 {
543     virtual HRESULT STDMETHODCALLTYPE get_Period(
544         TimeSpan *value) = 0;
545 
546     virtual HRESULT STDMETHODCALLTYPE get_Delay(
547         TimeSpan *value) = 0;
548 
549     virtual HRESULT STDMETHODCALLTYPE Cancel(
550         ) = 0;
551 
552 };
553 #ifdef __CRT_UUID_DECL
554 __CRT_UUID_DECL(IThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 0x34,0x02,0xae,0x1f,0x9c,0xf2)
555 #endif
556 #else
557 typedef struct IThreadPoolTimerVtbl {
558     BEGIN_INTERFACE
559 
560     /*** IUnknown methods ***/
561     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
562         IThreadPoolTimer* This,
563         REFIID riid,
564         void **ppvObject);
565 
566     ULONG (STDMETHODCALLTYPE *AddRef)(
567         IThreadPoolTimer* This);
568 
569     ULONG (STDMETHODCALLTYPE *Release)(
570         IThreadPoolTimer* This);
571 
572     /*** IInspectable methods ***/
573     HRESULT (STDMETHODCALLTYPE *GetIids)(
574         IThreadPoolTimer* This,
575         ULONG *iidCount,
576         IID **iids);
577 
578     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
579         IThreadPoolTimer* This,
580         HSTRING *className);
581 
582     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
583         IThreadPoolTimer* This,
584         TrustLevel *trustLevel);
585 
586     /*** IThreadPoolTimer methods ***/
587     HRESULT (STDMETHODCALLTYPE *get_Period)(
588         IThreadPoolTimer* This,
589         TimeSpan *value);
590 
591     HRESULT (STDMETHODCALLTYPE *get_Delay)(
592         IThreadPoolTimer* This,
593         TimeSpan *value);
594 
595     HRESULT (STDMETHODCALLTYPE *Cancel)(
596         IThreadPoolTimer* This);
597 
598     END_INTERFACE
599 } IThreadPoolTimerVtbl;
600 interface IThreadPoolTimer {
601     CONST_VTBL IThreadPoolTimerVtbl* lpVtbl;
602 };
603 
604 #ifdef COBJMACROS
605 #ifndef WIDL_C_INLINE_WRAPPERS
606 /*** IUnknown methods ***/
607 #define IThreadPoolTimer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
608 #define IThreadPoolTimer_AddRef(This) (This)->lpVtbl->AddRef(This)
609 #define IThreadPoolTimer_Release(This) (This)->lpVtbl->Release(This)
610 /*** IInspectable methods ***/
611 #define IThreadPoolTimer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
612 #define IThreadPoolTimer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
613 #define IThreadPoolTimer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
614 /*** IThreadPoolTimer methods ***/
615 #define IThreadPoolTimer_get_Period(This,value) (This)->lpVtbl->get_Period(This,value)
616 #define IThreadPoolTimer_get_Delay(This,value) (This)->lpVtbl->get_Delay(This,value)
617 #define IThreadPoolTimer_Cancel(This) (This)->lpVtbl->Cancel(This)
618 #else
619 /*** IUnknown methods ***/
620 static FORCEINLINE HRESULT IThreadPoolTimer_QueryInterface(IThreadPoolTimer* This,REFIID riid,void **ppvObject) {
621     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
622 }
623 static FORCEINLINE ULONG IThreadPoolTimer_AddRef(IThreadPoolTimer* This) {
624     return This->lpVtbl->AddRef(This);
625 }
626 static FORCEINLINE ULONG IThreadPoolTimer_Release(IThreadPoolTimer* This) {
627     return This->lpVtbl->Release(This);
628 }
629 /*** IInspectable methods ***/
630 static FORCEINLINE HRESULT IThreadPoolTimer_GetIids(IThreadPoolTimer* This,ULONG *iidCount,IID **iids) {
631     return This->lpVtbl->GetIids(This,iidCount,iids);
632 }
633 static FORCEINLINE HRESULT IThreadPoolTimer_GetRuntimeClassName(IThreadPoolTimer* This,HSTRING *className) {
634     return This->lpVtbl->GetRuntimeClassName(This,className);
635 }
636 static FORCEINLINE HRESULT IThreadPoolTimer_GetTrustLevel(IThreadPoolTimer* This,TrustLevel *trustLevel) {
637     return This->lpVtbl->GetTrustLevel(This,trustLevel);
638 }
639 /*** IThreadPoolTimer methods ***/
640 static FORCEINLINE HRESULT IThreadPoolTimer_get_Period(IThreadPoolTimer* This,TimeSpan *value) {
641     return This->lpVtbl->get_Period(This,value);
642 }
643 static FORCEINLINE HRESULT IThreadPoolTimer_get_Delay(IThreadPoolTimer* This,TimeSpan *value) {
644     return This->lpVtbl->get_Delay(This,value);
645 }
646 static FORCEINLINE HRESULT IThreadPoolTimer_Cancel(IThreadPoolTimer* This) {
647     return This->lpVtbl->Cancel(This);
648 }
649 #endif
650 #endif
651 
652 #endif
653 
654 HRESULT STDMETHODCALLTYPE IThreadPoolTimer_get_Period_Proxy(
655     IThreadPoolTimer* This,
656     TimeSpan *value);
657 void __RPC_STUB IThreadPoolTimer_get_Period_Stub(
658     IRpcStubBuffer* This,
659     IRpcChannelBuffer* pRpcChannelBuffer,
660     PRPC_MESSAGE pRpcMessage,
661     DWORD* pdwStubPhase);
662 HRESULT STDMETHODCALLTYPE IThreadPoolTimer_get_Delay_Proxy(
663     IThreadPoolTimer* This,
664     TimeSpan *value);
665 void __RPC_STUB IThreadPoolTimer_get_Delay_Stub(
666     IRpcStubBuffer* This,
667     IRpcChannelBuffer* pRpcChannelBuffer,
668     PRPC_MESSAGE pRpcMessage,
669     DWORD* pdwStubPhase);
670 HRESULT STDMETHODCALLTYPE IThreadPoolTimer_Cancel_Proxy(
671     IThreadPoolTimer* This);
672 void __RPC_STUB IThreadPoolTimer_Cancel_Stub(
673     IRpcStubBuffer* This,
674     IRpcChannelBuffer* pRpcChannelBuffer,
675     PRPC_MESSAGE pRpcMessage,
676     DWORD* pdwStubPhase);
677 
678 #endif  /* __IThreadPoolTimer_INTERFACE_DEFINED__ */
679 
680 /*****************************************************************************
681  * IThreadPoolTimerStatics interface
682  */
683 #ifndef __IThreadPoolTimerStatics_INTERFACE_DEFINED__
684 #define __IThreadPoolTimerStatics_INTERFACE_DEFINED__
685 
686 DEFINE_GUID(IID_IThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90);
687 #if defined(__cplusplus) && !defined(CINTERFACE)
688 MIDL_INTERFACE("1a8a9d02-e482-461b-b8c7-8efad1cce590")
689 IThreadPoolTimerStatics : public IInspectable
690 {
691     virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimer(
692         TimerElapsedHandler *handler,
693         TimeSpan period,
694         IThreadPoolTimer **timer) = 0;
695 
696     virtual HRESULT STDMETHODCALLTYPE CreateTimer(
697         TimerElapsedHandler *handler,
698         TimeSpan delay,
699         IThreadPoolTimer **timer) = 0;
700 
701     virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimerWithCompletion(
702         TimerElapsedHandler *handler,
703         TimeSpan period,
704         TimerDestroyedHandler *destroyed,
705         IThreadPoolTimer **timer) = 0;
706 
707     virtual HRESULT STDMETHODCALLTYPE CreateTimerWithCompletion(
708         TimerElapsedHandler *handler,
709         TimeSpan delay,
710         TimerDestroyedHandler *destroyed,
711         IThreadPoolTimer **timer) = 0;
712 
713 };
714 #ifdef __CRT_UUID_DECL
715 __CRT_UUID_DECL(IThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90)
716 #endif
717 #else
718 typedef struct IThreadPoolTimerStaticsVtbl {
719     BEGIN_INTERFACE
720 
721     /*** IUnknown methods ***/
722     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
723         IThreadPoolTimerStatics* This,
724         REFIID riid,
725         void **ppvObject);
726 
727     ULONG (STDMETHODCALLTYPE *AddRef)(
728         IThreadPoolTimerStatics* This);
729 
730     ULONG (STDMETHODCALLTYPE *Release)(
731         IThreadPoolTimerStatics* This);
732 
733     /*** IInspectable methods ***/
734     HRESULT (STDMETHODCALLTYPE *GetIids)(
735         IThreadPoolTimerStatics* This,
736         ULONG *iidCount,
737         IID **iids);
738 
739     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
740         IThreadPoolTimerStatics* This,
741         HSTRING *className);
742 
743     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
744         IThreadPoolTimerStatics* This,
745         TrustLevel *trustLevel);
746 
747     /*** IThreadPoolTimerStatics methods ***/
748     HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimer)(
749         IThreadPoolTimerStatics* This,
750         TimerElapsedHandler *handler,
751         TimeSpan period,
752         IThreadPoolTimer **timer);
753 
754     HRESULT (STDMETHODCALLTYPE *CreateTimer)(
755         IThreadPoolTimerStatics* This,
756         TimerElapsedHandler *handler,
757         TimeSpan delay,
758         IThreadPoolTimer **timer);
759 
760     HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimerWithCompletion)(
761         IThreadPoolTimerStatics* This,
762         TimerElapsedHandler *handler,
763         TimeSpan period,
764         TimerDestroyedHandler *destroyed,
765         IThreadPoolTimer **timer);
766 
767     HRESULT (STDMETHODCALLTYPE *CreateTimerWithCompletion)(
768         IThreadPoolTimerStatics* This,
769         TimerElapsedHandler *handler,
770         TimeSpan delay,
771         TimerDestroyedHandler *destroyed,
772         IThreadPoolTimer **timer);
773 
774     END_INTERFACE
775 } IThreadPoolTimerStaticsVtbl;
776 interface IThreadPoolTimerStatics {
777     CONST_VTBL IThreadPoolTimerStaticsVtbl* lpVtbl;
778 };
779 
780 #ifdef COBJMACROS
781 #ifndef WIDL_C_INLINE_WRAPPERS
782 /*** IUnknown methods ***/
783 #define IThreadPoolTimerStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
784 #define IThreadPoolTimerStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
785 #define IThreadPoolTimerStatics_Release(This) (This)->lpVtbl->Release(This)
786 /*** IInspectable methods ***/
787 #define IThreadPoolTimerStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
788 #define IThreadPoolTimerStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
789 #define IThreadPoolTimerStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
790 /*** IThreadPoolTimerStatics methods ***/
791 #define IThreadPoolTimerStatics_CreatePeriodicTimer(This,handler,period,timer) (This)->lpVtbl->CreatePeriodicTimer(This,handler,period,timer)
792 #define IThreadPoolTimerStatics_CreateTimer(This,handler,delay,timer) (This)->lpVtbl->CreateTimer(This,handler,delay,timer)
793 #define IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer) (This)->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer)
794 #define IThreadPoolTimerStatics_CreateTimerWithCompletion(This,handler,delay,destroyed,timer) (This)->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer)
795 #else
796 /*** IUnknown methods ***/
797 static FORCEINLINE HRESULT IThreadPoolTimerStatics_QueryInterface(IThreadPoolTimerStatics* This,REFIID riid,void **ppvObject) {
798     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
799 }
800 static FORCEINLINE ULONG IThreadPoolTimerStatics_AddRef(IThreadPoolTimerStatics* This) {
801     return This->lpVtbl->AddRef(This);
802 }
803 static FORCEINLINE ULONG IThreadPoolTimerStatics_Release(IThreadPoolTimerStatics* This) {
804     return This->lpVtbl->Release(This);
805 }
806 /*** IInspectable methods ***/
807 static FORCEINLINE HRESULT IThreadPoolTimerStatics_GetIids(IThreadPoolTimerStatics* This,ULONG *iidCount,IID **iids) {
808     return This->lpVtbl->GetIids(This,iidCount,iids);
809 }
810 static FORCEINLINE HRESULT IThreadPoolTimerStatics_GetRuntimeClassName(IThreadPoolTimerStatics* This,HSTRING *className) {
811     return This->lpVtbl->GetRuntimeClassName(This,className);
812 }
813 static FORCEINLINE HRESULT IThreadPoolTimerStatics_GetTrustLevel(IThreadPoolTimerStatics* This,TrustLevel *trustLevel) {
814     return This->lpVtbl->GetTrustLevel(This,trustLevel);
815 }
816 /*** IThreadPoolTimerStatics methods ***/
817 static FORCEINLINE HRESULT IThreadPoolTimerStatics_CreatePeriodicTimer(IThreadPoolTimerStatics* This,TimerElapsedHandler *handler,TimeSpan period,IThreadPoolTimer **timer) {
818     return This->lpVtbl->CreatePeriodicTimer(This,handler,period,timer);
819 }
820 static FORCEINLINE HRESULT IThreadPoolTimerStatics_CreateTimer(IThreadPoolTimerStatics* This,TimerElapsedHandler *handler,TimeSpan delay,IThreadPoolTimer **timer) {
821     return This->lpVtbl->CreateTimer(This,handler,delay,timer);
822 }
823 static FORCEINLINE HRESULT IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(IThreadPoolTimerStatics* This,TimerElapsedHandler *handler,TimeSpan period,TimerDestroyedHandler *destroyed,IThreadPoolTimer **timer) {
824     return This->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer);
825 }
826 static FORCEINLINE HRESULT IThreadPoolTimerStatics_CreateTimerWithCompletion(IThreadPoolTimerStatics* This,TimerElapsedHandler *handler,TimeSpan delay,TimerDestroyedHandler *destroyed,IThreadPoolTimer **timer) {
827     return This->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer);
828 }
829 #endif
830 #endif
831 
832 #endif
833 
834 HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreatePeriodicTimer_Proxy(
835     IThreadPoolTimerStatics* This,
836     TimerElapsedHandler *handler,
837     TimeSpan period,
838     IThreadPoolTimer **timer);
839 void __RPC_STUB IThreadPoolTimerStatics_CreatePeriodicTimer_Stub(
840     IRpcStubBuffer* This,
841     IRpcChannelBuffer* pRpcChannelBuffer,
842     PRPC_MESSAGE pRpcMessage,
843     DWORD* pdwStubPhase);
844 HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreateTimer_Proxy(
845     IThreadPoolTimerStatics* This,
846     TimerElapsedHandler *handler,
847     TimeSpan delay,
848     IThreadPoolTimer **timer);
849 void __RPC_STUB IThreadPoolTimerStatics_CreateTimer_Stub(
850     IRpcStubBuffer* This,
851     IRpcChannelBuffer* pRpcChannelBuffer,
852     PRPC_MESSAGE pRpcMessage,
853     DWORD* pdwStubPhase);
854 HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion_Proxy(
855     IThreadPoolTimerStatics* This,
856     TimerElapsedHandler *handler,
857     TimeSpan period,
858     TimerDestroyedHandler *destroyed,
859     IThreadPoolTimer **timer);
860 void __RPC_STUB IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion_Stub(
861     IRpcStubBuffer* This,
862     IRpcChannelBuffer* pRpcChannelBuffer,
863     PRPC_MESSAGE pRpcMessage,
864     DWORD* pdwStubPhase);
865 HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreateTimerWithCompletion_Proxy(
866     IThreadPoolTimerStatics* This,
867     TimerElapsedHandler *handler,
868     TimeSpan delay,
869     TimerDestroyedHandler *destroyed,
870     IThreadPoolTimer **timer);
871 void __RPC_STUB IThreadPoolTimerStatics_CreateTimerWithCompletion_Stub(
872     IRpcStubBuffer* This,
873     IRpcChannelBuffer* pRpcChannelBuffer,
874     PRPC_MESSAGE pRpcMessage,
875     DWORD* pdwStubPhase);
876 
877 #endif  /* __IThreadPoolTimerStatics_INTERFACE_DEFINED__ */
878 
879 /* Begin additional prototypes for all interfaces */
880 
881 
882 /* End additional prototypes */
883 
884 #ifdef __cplusplus
885 }
886 #endif
887 
888 #endif /* __windows_system_threading_h__ */
889