---
 mingw-w64-headers/Makefile.am                      |   1 +
 .../include/windows.system.threading.h             | 888 +++++++++++++++++++++
 .../include/windows.system.threading.idl           | 119 +++
 3 files changed, 1008 insertions(+)
 create mode 100644 mingw-w64-headers/include/windows.system.threading.h
 create mode 100644 mingw-w64-headers/include/windows.system.threading.idl

diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index 802e3e7..73da46c 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -113,6 +113,7 @@ IDL_SRCS = \
   include/windows.security.cryptography.idl \
   include/windows.storage.idl \
   include/windows.storage.streams.idl \
+  include/windows.system.threading.idl \
   include/wmcodecdsp.idl \
   include/wpcapi.idl \
   include/wtypes.idl \
diff --git a/mingw-w64-headers/include/windows.system.threading.h 
b/mingw-w64-headers/include/windows.system.threading.h
new file mode 100644
index 0000000..c76d3d7
--- /dev/null
+++ b/mingw-w64-headers/include/windows.system.threading.h
@@ -0,0 +1,888 @@
+/*** Autogenerated by WIDL 1.6 from include/windows.system.threading.idl - Do 
not edit ***/
+
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_system_threading_h__
+#define __windows_system_threading_h__
+
+/* Forward declarations */
+
+#ifndef __TimerElapsedHandler_FWD_DEFINED__
+#define __TimerElapsedHandler_FWD_DEFINED__
+typedef interface TimerElapsedHandler TimerElapsedHandler;
+#endif
+
+#ifndef __TimerDestroyedHandler_FWD_DEFINED__
+#define __TimerDestroyedHandler_FWD_DEFINED__
+typedef interface TimerDestroyedHandler TimerDestroyedHandler;
+#endif
+
+#ifndef __WorkItemHandler_FWD_DEFINED__
+#define __WorkItemHandler_FWD_DEFINED__
+typedef interface WorkItemHandler WorkItemHandler;
+#endif
+
+#ifndef __IThreadPoolStatics_FWD_DEFINED__
+#define __IThreadPoolStatics_FWD_DEFINED__
+typedef interface IThreadPoolStatics IThreadPoolStatics;
+#endif
+
+#ifndef __IThreadPoolTimer_FWD_DEFINED__
+#define __IThreadPoolTimer_FWD_DEFINED__
+typedef interface IThreadPoolTimer IThreadPoolTimer;
+#endif
+
+#ifndef __IThreadPoolTimerStatics_FWD_DEFINED__
+#define __IThreadPoolTimerStatics_FWD_DEFINED__
+typedef interface IThreadPoolTimerStatics IThreadPoolTimerStatics;
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef __IAsyncAction_FWD_DEFINED__
+#define __IAsyncAction_FWD_DEFINED__
+typedef interface IAsyncAction IAsyncAction;
+#endif
+
+struct TimeSpan;
+
+enum WorkItemPriority;
+
+enum WorkItemOptions;
+
+#ifndef __TimerElapsedHandler_FWD_DEFINED__
+#define __TimerElapsedHandler_FWD_DEFINED__
+typedef interface TimerElapsedHandler TimerElapsedHandler;
+#endif
+
+#ifndef __TimerDestroyedHandler_FWD_DEFINED__
+#define __TimerDestroyedHandler_FWD_DEFINED__
+typedef interface TimerDestroyedHandler TimerDestroyedHandler;
+#endif
+
+#ifndef __WorkItemHandler_FWD_DEFINED__
+#define __WorkItemHandler_FWD_DEFINED__
+typedef interface WorkItemHandler WorkItemHandler;
+#endif
+
+#ifndef __IThreadPoolStatics_FWD_DEFINED__
+#define __IThreadPoolStatics_FWD_DEFINED__
+typedef interface IThreadPoolStatics IThreadPoolStatics;
+#endif
+
+#ifndef __IThreadPoolTimer_FWD_DEFINED__
+#define __IThreadPoolTimer_FWD_DEFINED__
+typedef interface IThreadPoolTimer IThreadPoolTimer;
+#endif
+
+#ifndef __IThreadPoolTimerStatics_FWD_DEFINED__
+#define __IThreadPoolTimerStatics_FWD_DEFINED__
+typedef interface IThreadPoolTimerStatics IThreadPoolTimerStatics;
+#endif
+
+typedef enum WorkItemPriority {
+    Low = -1,
+    Normal = 0,
+    High = 1
+} WorkItemPriority;
+typedef enum WorkItemOptions {
+    None = 0,
+    TimeSliced = 1
+} WorkItemOptions;
+typedef struct TimeSpan {
+    INT64 Duration;
+} TimeSpan;
+/*****************************************************************************
+ * TimerElapsedHandler interface
+ */
+#ifndef __TimerElapsedHandler_INTERFACE_DEFINED__
+#define __TimerElapsedHandler_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_TimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 
0x71,0x18,0x4c,0x55,0x6e,0x43);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("faaea667-fbeb-49cb-adb2-71184c556e43")
+TimerElapsedHandler : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Invoke(
+        IThreadPoolTimer *timer) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(TimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 
0x71,0x18,0x4c,0x55,0x6e,0x43)
+#endif
+#else
+typedef struct TimerElapsedHandlerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        TimerElapsedHandler* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        TimerElapsedHandler* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        TimerElapsedHandler* This);
+
+    /*** TimerElapsedHandler methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        TimerElapsedHandler* This,
+        IThreadPoolTimer *timer);
+
+    END_INTERFACE
+} TimerElapsedHandlerVtbl;
+interface TimerElapsedHandler {
+    CONST_VTBL TimerElapsedHandlerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define TimerElapsedHandler_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define TimerElapsedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define TimerElapsedHandler_Release(This) (This)->lpVtbl->Release(This)
+/*** TimerElapsedHandler methods ***/
+#define TimerElapsedHandler_Invoke(This,timer) 
(This)->lpVtbl->Invoke(This,timer)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT 
TimerElapsedHandler_QueryInterface(TimerElapsedHandler* This,REFIID riid,void 
**ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG TimerElapsedHandler_AddRef(TimerElapsedHandler* This) 
{
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG TimerElapsedHandler_Release(TimerElapsedHandler* 
This) {
+    return This->lpVtbl->Release(This);
+}
+/*** TimerElapsedHandler methods ***/
+static FORCEINLINE HRESULT TimerElapsedHandler_Invoke(TimerElapsedHandler* 
This,IThreadPoolTimer *timer) {
+    return This->lpVtbl->Invoke(This,timer);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE TimerElapsedHandler_Invoke_Proxy(
+    TimerElapsedHandler* This,
+    IThreadPoolTimer *timer);
+void __RPC_STUB TimerElapsedHandler_Invoke_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __TimerElapsedHandler_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * TimerDestroyedHandler interface
+ */
+#ifndef __TimerDestroyedHandler_INTERFACE_DEFINED__
+#define __TimerDestroyedHandler_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_TimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 
0xfb,0x50,0x94,0xee,0xec,0x35);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("34ed19fa-8384-4eb9-8209-fb5094eeec35")
+TimerDestroyedHandler : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Invoke(
+        IThreadPoolTimer *timer) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(TimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 
0xfb,0x50,0x94,0xee,0xec,0x35)
+#endif
+#else
+typedef struct TimerDestroyedHandlerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        TimerDestroyedHandler* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        TimerDestroyedHandler* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        TimerDestroyedHandler* This);
+
+    /*** TimerDestroyedHandler methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        TimerDestroyedHandler* This,
+        IThreadPoolTimer *timer);
+
+    END_INTERFACE
+} TimerDestroyedHandlerVtbl;
+interface TimerDestroyedHandler {
+    CONST_VTBL TimerDestroyedHandlerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define TimerDestroyedHandler_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define TimerDestroyedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define TimerDestroyedHandler_Release(This) (This)->lpVtbl->Release(This)
+/*** TimerDestroyedHandler methods ***/
+#define TimerDestroyedHandler_Invoke(This,timer) 
(This)->lpVtbl->Invoke(This,timer)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT 
TimerDestroyedHandler_QueryInterface(TimerDestroyedHandler* This,REFIID 
riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG TimerDestroyedHandler_AddRef(TimerDestroyedHandler* 
This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG TimerDestroyedHandler_Release(TimerDestroyedHandler* 
This) {
+    return This->lpVtbl->Release(This);
+}
+/*** TimerDestroyedHandler methods ***/
+static FORCEINLINE HRESULT TimerDestroyedHandler_Invoke(TimerDestroyedHandler* 
This,IThreadPoolTimer *timer) {
+    return This->lpVtbl->Invoke(This,timer);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE TimerDestroyedHandler_Invoke_Proxy(
+    TimerDestroyedHandler* This,
+    IThreadPoolTimer *timer);
+void __RPC_STUB TimerDestroyedHandler_Invoke_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __TimerDestroyedHandler_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * WorkItemHandler interface
+ */
+#ifndef __WorkItemHandler_INTERFACE_DEFINED__
+#define __WorkItemHandler_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_WorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 
0xb6,0x5f,0xc9,0x9d,0x17,0xfa);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1d1a8b8b-fa66-414f-9cbd-b65fc99d17fa")
+WorkItemHandler : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Invoke(
+        IAsyncAction *operation) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 
0xb6,0x5f,0xc9,0x9d,0x17,0xfa)
+#endif
+#else
+typedef struct WorkItemHandlerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        WorkItemHandler* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        WorkItemHandler* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        WorkItemHandler* This);
+
+    /*** WorkItemHandler methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        WorkItemHandler* This,
+        IAsyncAction *operation);
+
+    END_INTERFACE
+} WorkItemHandlerVtbl;
+interface WorkItemHandler {
+    CONST_VTBL WorkItemHandlerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define WorkItemHandler_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define WorkItemHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define WorkItemHandler_Release(This) (This)->lpVtbl->Release(This)
+/*** WorkItemHandler methods ***/
+#define WorkItemHandler_Invoke(This,operation) 
(This)->lpVtbl->Invoke(This,operation)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT WorkItemHandler_QueryInterface(WorkItemHandler* 
This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG WorkItemHandler_AddRef(WorkItemHandler* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG WorkItemHandler_Release(WorkItemHandler* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** WorkItemHandler methods ***/
+static FORCEINLINE HRESULT WorkItemHandler_Invoke(WorkItemHandler* 
This,IAsyncAction *operation) {
+    return This->lpVtbl->Invoke(This,operation);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE WorkItemHandler_Invoke_Proxy(
+    WorkItemHandler* This,
+    IAsyncAction *operation);
+void __RPC_STUB WorkItemHandler_Invoke_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __WorkItemHandler_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IThreadPoolStatics interface
+ */
+#ifndef __IThreadPoolStatics_INTERFACE_DEFINED__
+#define __IThreadPoolStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 
0x93,0xeb,0xcb,0x9d,0xba,0x91);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b6bf67dd-84bd-44f8-ac1c-93ebcb9dba91")
+IThreadPoolStatics : public IInspectable
+{
+    virtual HRESULT STDMETHODCALLTYPE RunAsync(
+        WorkItemHandler *handler,
+        IAsyncAction **operation) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAsync(
+        WorkItemHandler *handler,
+        WorkItemPriority priority,
+        IAsyncAction **operation) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAndOptionsAsync(
+        WorkItemHandler *handler,
+        WorkItemPriority priority,
+        WorkItemOptions options,
+        IAsyncAction **operation) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 
0x93,0xeb,0xcb,0x9d,0xba,0x91)
+#endif
+#else
+typedef struct IThreadPoolStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IThreadPoolStatics* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IThreadPoolStatics* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IThreadPoolStatics* This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        IThreadPoolStatics* This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        IThreadPoolStatics* This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        IThreadPoolStatics* This,
+        TrustLevel *trustLevel);
+
+    /*** IThreadPoolStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *RunAsync)(
+        IThreadPoolStatics* This,
+        WorkItemHandler *handler,
+        IAsyncAction **operation);
+
+    HRESULT (STDMETHODCALLTYPE *RunWithPriorityAsync)(
+        IThreadPoolStatics* This,
+        WorkItemHandler *handler,
+        WorkItemPriority priority,
+        IAsyncAction **operation);
+
+    HRESULT (STDMETHODCALLTYPE *RunWithPriorityAndOptionsAsync)(
+        IThreadPoolStatics* This,
+        WorkItemHandler *handler,
+        WorkItemPriority priority,
+        WorkItemOptions options,
+        IAsyncAction **operation);
+
+    END_INTERFACE
+} IThreadPoolStaticsVtbl;
+interface IThreadPoolStatics {
+    CONST_VTBL IThreadPoolStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IThreadPoolStatics_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IThreadPoolStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IThreadPoolStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define IThreadPoolStatics_GetIids(This,iidCount,iids) 
(This)->lpVtbl->GetIids(This,iidCount,iids)
+#define IThreadPoolStatics_GetRuntimeClassName(This,className) 
(This)->lpVtbl->GetRuntimeClassName(This,className)
+#define IThreadPoolStatics_GetTrustLevel(This,trustLevel) 
(This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IThreadPoolStatics methods ***/
+#define IThreadPoolStatics_RunAsync(This,handler,operation) 
(This)->lpVtbl->RunAsync(This,handler,operation)
+#define 
IThreadPoolStatics_RunWithPriorityAsync(This,handler,priority,operation) 
(This)->lpVtbl->RunWithPriorityAsync(This,handler,priority,operation)
+#define 
IThreadPoolStatics_RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation)
 
(This)->lpVtbl->RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT 
IThreadPoolStatics_QueryInterface(IThreadPoolStatics* This,REFIID riid,void 
**ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IThreadPoolStatics_AddRef(IThreadPoolStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IThreadPoolStatics_Release(IThreadPoolStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT IThreadPoolStatics_GetIids(IThreadPoolStatics* 
This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT 
IThreadPoolStatics_GetRuntimeClassName(IThreadPoolStatics* This,HSTRING 
*className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT 
IThreadPoolStatics_GetTrustLevel(IThreadPoolStatics* This,TrustLevel 
*trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IThreadPoolStatics methods ***/
+static FORCEINLINE HRESULT IThreadPoolStatics_RunAsync(IThreadPoolStatics* 
This,WorkItemHandler *handler,IAsyncAction **operation) {
+    return This->lpVtbl->RunAsync(This,handler,operation);
+}
+static FORCEINLINE HRESULT 
IThreadPoolStatics_RunWithPriorityAsync(IThreadPoolStatics* 
This,WorkItemHandler *handler,WorkItemPriority priority,IAsyncAction 
**operation) {
+    return This->lpVtbl->RunWithPriorityAsync(This,handler,priority,operation);
+}
+static FORCEINLINE HRESULT 
IThreadPoolStatics_RunWithPriorityAndOptionsAsync(IThreadPoolStatics* 
This,WorkItemHandler *handler,WorkItemPriority priority,WorkItemOptions 
options,IAsyncAction **operation) {
+    return 
This->lpVtbl->RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IThreadPoolStatics_RunAsync_Proxy(
+    IThreadPoolStatics* This,
+    WorkItemHandler *handler,
+    IAsyncAction **operation);
+void __RPC_STUB IThreadPoolStatics_RunAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IThreadPoolStatics_RunWithPriorityAsync_Proxy(
+    IThreadPoolStatics* This,
+    WorkItemHandler *handler,
+    WorkItemPriority priority,
+    IAsyncAction **operation);
+void __RPC_STUB IThreadPoolStatics_RunWithPriorityAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE 
IThreadPoolStatics_RunWithPriorityAndOptionsAsync_Proxy(
+    IThreadPoolStatics* This,
+    WorkItemHandler *handler,
+    WorkItemPriority priority,
+    WorkItemOptions options,
+    IAsyncAction **operation);
+void __RPC_STUB IThreadPoolStatics_RunWithPriorityAndOptionsAsync_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IThreadPoolStatics_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IThreadPoolTimer interface
+ */
+#ifndef __IThreadPoolTimer_INTERFACE_DEFINED__
+#define __IThreadPoolTimer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 
0x34,0x02,0xae,0x1f,0x9c,0xf2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("594ebe78-55ea-4a88-a50d-3402ae1f9cf2")
+IThreadPoolTimer : public IInspectable
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Period(
+        TimeSpan *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Delay(
+        TimeSpan *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Cancel(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 
0x34,0x02,0xae,0x1f,0x9c,0xf2)
+#endif
+#else
+typedef struct IThreadPoolTimerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IThreadPoolTimer* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IThreadPoolTimer* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IThreadPoolTimer* This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        IThreadPoolTimer* This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        IThreadPoolTimer* This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        IThreadPoolTimer* This,
+        TrustLevel *trustLevel);
+
+    /*** IThreadPoolTimer methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Period)(
+        IThreadPoolTimer* This,
+        TimeSpan *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Delay)(
+        IThreadPoolTimer* This,
+        TimeSpan *value);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IThreadPoolTimer* This);
+
+    END_INTERFACE
+} IThreadPoolTimerVtbl;
+interface IThreadPoolTimer {
+    CONST_VTBL IThreadPoolTimerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IThreadPoolTimer_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IThreadPoolTimer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IThreadPoolTimer_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define IThreadPoolTimer_GetIids(This,iidCount,iids) 
(This)->lpVtbl->GetIids(This,iidCount,iids)
+#define IThreadPoolTimer_GetRuntimeClassName(This,className) 
(This)->lpVtbl->GetRuntimeClassName(This,className)
+#define IThreadPoolTimer_GetTrustLevel(This,trustLevel) 
(This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IThreadPoolTimer methods ***/
+#define IThreadPoolTimer_get_Period(This,value) 
(This)->lpVtbl->get_Period(This,value)
+#define IThreadPoolTimer_get_Delay(This,value) 
(This)->lpVtbl->get_Delay(This,value)
+#define IThreadPoolTimer_Cancel(This) (This)->lpVtbl->Cancel(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IThreadPoolTimer_QueryInterface(IThreadPoolTimer* 
This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IThreadPoolTimer_AddRef(IThreadPoolTimer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IThreadPoolTimer_Release(IThreadPoolTimer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT IThreadPoolTimer_GetIids(IThreadPoolTimer* 
This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT 
IThreadPoolTimer_GetRuntimeClassName(IThreadPoolTimer* This,HSTRING *className) 
{
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT IThreadPoolTimer_GetTrustLevel(IThreadPoolTimer* 
This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IThreadPoolTimer methods ***/
+static FORCEINLINE HRESULT IThreadPoolTimer_get_Period(IThreadPoolTimer* 
This,TimeSpan *value) {
+    return This->lpVtbl->get_Period(This,value);
+}
+static FORCEINLINE HRESULT IThreadPoolTimer_get_Delay(IThreadPoolTimer* 
This,TimeSpan *value) {
+    return This->lpVtbl->get_Delay(This,value);
+}
+static FORCEINLINE HRESULT IThreadPoolTimer_Cancel(IThreadPoolTimer* This) {
+    return This->lpVtbl->Cancel(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IThreadPoolTimer_get_Period_Proxy(
+    IThreadPoolTimer* This,
+    TimeSpan *value);
+void __RPC_STUB IThreadPoolTimer_get_Period_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IThreadPoolTimer_get_Delay_Proxy(
+    IThreadPoolTimer* This,
+    TimeSpan *value);
+void __RPC_STUB IThreadPoolTimer_get_Delay_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IThreadPoolTimer_Cancel_Proxy(
+    IThreadPoolTimer* This);
+void __RPC_STUB IThreadPoolTimer_Cancel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IThreadPoolTimer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IThreadPoolTimerStatics interface
+ */
+#ifndef __IThreadPoolTimerStatics_INTERFACE_DEFINED__
+#define __IThreadPoolTimerStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 
0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1a8a9d02-e482-461b-b8c7-8efad1cce590")
+IThreadPoolTimerStatics : public IInspectable
+{
+    virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimer(
+        TimerElapsedHandler *handler,
+        TimeSpan period,
+        IThreadPoolTimer **timer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateTimer(
+        TimerElapsedHandler *handler,
+        TimeSpan delay,
+        IThreadPoolTimer **timer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimerWithCompletion(
+        TimerElapsedHandler *handler,
+        TimeSpan period,
+        TimerDestroyedHandler *destroyed,
+        IThreadPoolTimer **timer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateTimerWithCompletion(
+        TimerElapsedHandler *handler,
+        TimeSpan delay,
+        TimerDestroyedHandler *destroyed,
+        IThreadPoolTimer **timer) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 
0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90)
+#endif
+#else
+typedef struct IThreadPoolTimerStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IThreadPoolTimerStatics* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IThreadPoolTimerStatics* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IThreadPoolTimerStatics* This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        IThreadPoolTimerStatics* This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        IThreadPoolTimerStatics* This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        IThreadPoolTimerStatics* This,
+        TrustLevel *trustLevel);
+
+    /*** IThreadPoolTimerStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimer)(
+        IThreadPoolTimerStatics* This,
+        TimerElapsedHandler *handler,
+        TimeSpan period,
+        IThreadPoolTimer **timer);
+
+    HRESULT (STDMETHODCALLTYPE *CreateTimer)(
+        IThreadPoolTimerStatics* This,
+        TimerElapsedHandler *handler,
+        TimeSpan delay,
+        IThreadPoolTimer **timer);
+
+    HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimerWithCompletion)(
+        IThreadPoolTimerStatics* This,
+        TimerElapsedHandler *handler,
+        TimeSpan period,
+        TimerDestroyedHandler *destroyed,
+        IThreadPoolTimer **timer);
+
+    HRESULT (STDMETHODCALLTYPE *CreateTimerWithCompletion)(
+        IThreadPoolTimerStatics* This,
+        TimerElapsedHandler *handler,
+        TimeSpan delay,
+        TimerDestroyedHandler *destroyed,
+        IThreadPoolTimer **timer);
+
+    END_INTERFACE
+} IThreadPoolTimerStaticsVtbl;
+interface IThreadPoolTimerStatics {
+    CONST_VTBL IThreadPoolTimerStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IThreadPoolTimerStatics_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IThreadPoolTimerStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IThreadPoolTimerStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define IThreadPoolTimerStatics_GetIids(This,iidCount,iids) 
(This)->lpVtbl->GetIids(This,iidCount,iids)
+#define IThreadPoolTimerStatics_GetRuntimeClassName(This,className) 
(This)->lpVtbl->GetRuntimeClassName(This,className)
+#define IThreadPoolTimerStatics_GetTrustLevel(This,trustLevel) 
(This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IThreadPoolTimerStatics methods ***/
+#define IThreadPoolTimerStatics_CreatePeriodicTimer(This,handler,period,timer) 
(This)->lpVtbl->CreatePeriodicTimer(This,handler,period,timer)
+#define IThreadPoolTimerStatics_CreateTimer(This,handler,delay,timer) 
(This)->lpVtbl->CreateTimer(This,handler,delay,timer)
+#define 
IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer)
 
(This)->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer)
+#define 
IThreadPoolTimerStatics_CreateTimerWithCompletion(This,handler,delay,destroyed,timer)
 (This)->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT 
IThreadPoolTimerStatics_QueryInterface(IThreadPoolTimerStatics* This,REFIID 
riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG 
IThreadPoolTimerStatics_AddRef(IThreadPoolTimerStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG 
IThreadPoolTimerStatics_Release(IThreadPoolTimerStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT 
IThreadPoolTimerStatics_GetIids(IThreadPoolTimerStatics* This,ULONG 
*iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT 
IThreadPoolTimerStatics_GetRuntimeClassName(IThreadPoolTimerStatics* 
This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT 
IThreadPoolTimerStatics_GetTrustLevel(IThreadPoolTimerStatics* This,TrustLevel 
*trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IThreadPoolTimerStatics methods ***/
+static FORCEINLINE HRESULT 
IThreadPoolTimerStatics_CreatePeriodicTimer(IThreadPoolTimerStatics* 
This,TimerElapsedHandler *handler,TimeSpan period,IThreadPoolTimer **timer) {
+    return This->lpVtbl->CreatePeriodicTimer(This,handler,period,timer);
+}
+static FORCEINLINE HRESULT 
IThreadPoolTimerStatics_CreateTimer(IThreadPoolTimerStatics* 
This,TimerElapsedHandler *handler,TimeSpan delay,IThreadPoolTimer **timer) {
+    return This->lpVtbl->CreateTimer(This,handler,delay,timer);
+}
+static FORCEINLINE HRESULT 
IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(IThreadPoolTimerStatics*
 This,TimerElapsedHandler *handler,TimeSpan period,TimerDestroyedHandler 
*destroyed,IThreadPoolTimer **timer) {
+    return 
This->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer);
+}
+static FORCEINLINE HRESULT 
IThreadPoolTimerStatics_CreateTimerWithCompletion(IThreadPoolTimerStatics* 
This,TimerElapsedHandler *handler,TimeSpan delay,TimerDestroyedHandler 
*destroyed,IThreadPoolTimer **timer) {
+    return 
This->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreatePeriodicTimer_Proxy(
+    IThreadPoolTimerStatics* This,
+    TimerElapsedHandler *handler,
+    TimeSpan period,
+    IThreadPoolTimer **timer);
+void __RPC_STUB IThreadPoolTimerStatics_CreatePeriodicTimer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreateTimer_Proxy(
+    IThreadPoolTimerStatics* This,
+    TimerElapsedHandler *handler,
+    TimeSpan delay,
+    IThreadPoolTimer **timer);
+void __RPC_STUB IThreadPoolTimerStatics_CreateTimer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE 
IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion_Proxy(
+    IThreadPoolTimerStatics* This,
+    TimerElapsedHandler *handler,
+    TimeSpan period,
+    TimerDestroyedHandler *destroyed,
+    IThreadPoolTimer **timer);
+void __RPC_STUB IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE 
IThreadPoolTimerStatics_CreateTimerWithCompletion_Proxy(
+    IThreadPoolTimerStatics* This,
+    TimerElapsedHandler *handler,
+    TimeSpan delay,
+    TimerDestroyedHandler *destroyed,
+    IThreadPoolTimer **timer);
+void __RPC_STUB IThreadPoolTimerStatics_CreateTimerWithCompletion_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IThreadPoolTimerStatics_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_system_threading_h__ */
diff --git a/mingw-w64-headers/include/windows.system.threading.idl 
b/mingw-w64-headers/include/windows.system.threading.idl
new file mode 100644
index 0000000..de2675e
--- /dev/null
+++ b/mingw-w64-headers/include/windows.system.threading.idl
@@ -0,0 +1,119 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+import "inspectable.idl";
+import "windows.foundation.idl";
+
+namespace Windows {
+    namespace Foundation {
+        interface IAsyncAction;
+        struct TimeSpan;
+    }
+
+    namespace System {
+        namespace Threading {
+            enum WorkItemPriority;
+            enum WorkItemOptions;
+            interface TimerElapsedHandler;   //delegate
+            interface TimerDestroyedHandler; //delegate
+            interface WorkItemHandler;       //delegate
+            interface IThreadPoolStatics;
+            interface IThreadPoolTimer;
+            interface IThreadPoolTimerStatics;
+        }
+    }
+}
+
+namespace Windows {
+    namespace System {
+        namespace Threading
+        {
+            typedef enum WorkItemPriority {
+                Low    = -1,
+                Normal = 0,
+                High   = 1
+            } WorkItemPriority;
+
+            typedef enum WorkItemOptions {
+                None       = 0,
+                TimeSliced = 1
+            } WorkItemOptions;
+
+            typedef struct TimeSpan {
+                INT64 Duration;
+            } TimeSpan;
+
+            [uuid(FAAEA667-FBEB-49CB-ADB2-71184C556E43)]
+            interface TimerElapsedHandler : IUnknown {
+                HRESULT Invoke(IThreadPoolTimer* timer);
+            }
+
+            [uuid(34ED19FA-8384-4EB9-8209-FB5094EEEC35)]
+            interface TimerDestroyedHandler : IUnknown {
+                HRESULT Invoke(IThreadPoolTimer* timer);
+            }
+
+            [uuid(1D1A8B8B-FA66-414F-9CBD-B65FC99D17FA)]
+            interface WorkItemHandler : IUnknown {
+                HRESULT Invoke(
+                        IAsyncAction* operation);
+            }
+
+            [uuid(B6BF67DD-84BD-44F8-AC1C-93EBCB9DBA91)]
+            interface IThreadPoolStatics : IInspectable
+            {
+                HRESULT RunAsync(
+                        WorkItemHandler* handler,
+                        IAsyncAction** operation);
+
+                HRESULT RunWithPriorityAsync(
+                        WorkItemHandler* handler,
+                        WorkItemPriority priority,
+                        IAsyncAction** operation);
+
+                HRESULT RunWithPriorityAndOptionsAsync(
+                        WorkItemHandler* handler,
+                        WorkItemPriority priority,
+                        WorkItemOptions options,
+                        IAsyncAction** operation);
+            }
+
+            [uuid(594EBE78-55EA-4A88-A50D-3402AE1F9CF2)]
+            interface IThreadPoolTimer : IInspectable
+            {
+                [propget] HRESULT Period(TimeSpan* value);
+                [propget] HRESULT Delay(TimeSpan* value);
+                HRESULT Cancel();
+            }
+
+            [uuid(1A8A9D02-E482-461B-B8C7-8EFAD1CCE590)]
+            interface IThreadPoolTimerStatics : IInspectable
+            {
+                HRESULT CreatePeriodicTimer(
+                        TimerElapsedHandler* handler,
+                        TimeSpan period,
+                        IThreadPoolTimer** timer);
+
+                HRESULT CreateTimer(
+                        TimerElapsedHandler* handler,
+                        TimeSpan delay,
+                        IThreadPoolTimer** timer);
+
+                HRESULT CreatePeriodicTimerWithCompletion(
+                        TimerElapsedHandler* handler,
+                        TimeSpan period,
+                        TimerDestroyedHandler* destroyed,
+                        IThreadPoolTimer** timer);
+
+                HRESULT CreateTimerWithCompletion(
+                        TimerElapsedHandler* handler,
+                        TimeSpan delay,
+                        TimerDestroyedHandler* destroyed,
+                        IThreadPoolTimer** timer);
+            }
+        }
+    }
+}
-- 
1.8.3.4


------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to