Home | History | Annotate | Download | only in include
      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