/*** Autogenerated by WIDL 7.7 from include/windows.system.threading.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#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 ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler ABI::Windows::System::Threading::TimerElapsedHandler
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface TimerElapsedHandler;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler ABI::Windows::System::Threading::TimerDestroyedHandler
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface TimerDestroyedHandler;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler ABI::Windows::System::Threading::WorkItemHandler
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface WorkItemHandler;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics ABI::Windows::System::Threading::IThreadPoolStatics
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface IThreadPoolStatics;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer ABI::Windows::System::Threading::IThreadPoolTimer
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface IThreadPoolTimer;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics ABI::Windows::System::Threading::IThreadPoolTimerStatics
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface IThreadPoolTimerStatics;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <inspectable.h>
#include <windows.foundation.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CFoundation_CIAsyncAction __x_ABI_CWindows_CFoundation_CIAsyncAction;
#ifdef __cplusplus
#define __x_ABI_CWindows_CFoundation_CIAsyncAction ABI::Windows::Foundation::IAsyncAction
namespace ABI {
    namespace Windows {
        namespace Foundation {
            interface IAsyncAction;
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef __cplusplus
typedef enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority;
#endif /* __cplusplus */

#ifndef __cplusplus
typedef enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions;
#endif /* __cplusplus */

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler ABI::Windows::System::Threading::TimerElapsedHandler
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface TimerElapsedHandler;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler ABI::Windows::System::Threading::TimerDestroyedHandler
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface TimerDestroyedHandler;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler ABI::Windows::System::Threading::WorkItemHandler
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface WorkItemHandler;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics ABI::Windows::System::Threading::IThreadPoolStatics
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface IThreadPoolStatics;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer ABI::Windows::System::Threading::IThreadPoolTimer
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface IThreadPoolTimer;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics;
#ifdef __cplusplus
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics ABI::Windows::System::Threading::IThreadPoolTimerStatics
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                interface IThreadPoolTimerStatics;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                enum WorkItemPriority {
                    WorkItemPriority_Low = -1,
                    WorkItemPriority_Normal = 0,
                    WorkItemPriority_High = 1
                };
            }
        }
    }
}
extern "C" {
#else
enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority {
    WorkItemPriority_Low = -1,
    WorkItemPriority_Normal = 0,
    WorkItemPriority_High = 1
};
#ifdef WIDL_using_Windows_System_Threading
#define WorkItemPriority __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority
#endif /* WIDL_using_Windows_System_Threading */
#endif

#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                enum WorkItemOptions {
                    WorkItemOptions_None = 0,
                    WorkItemOptions_TimeSliced = 1
                };
            }
        }
    }
}
extern "C" {
#else
enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions {
    WorkItemOptions_None = 0,
    WorkItemOptions_TimeSliced = 1
};
#ifdef WIDL_using_Windows_System_Threading
#define WorkItemOptions __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions
#endif /* WIDL_using_Windows_System_Threading */
#endif

/*****************************************************************************
 * TimerElapsedHandler interface
 */
#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 0x71,0x18,0x4c,0x55,0x6e,0x43);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                MIDL_INTERFACE("faaea667-fbeb-49cb-adb2-71184c556e43")
                TimerElapsedHandler : public IUnknown
                {
                    virtual HRESULT STDMETHODCALLTYPE Invoke(
                        ABI::Windows::System::Threading::IThreadPoolTimer *timer) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 0x71,0x18,0x4c,0x55,0x6e,0x43)
#endif
#else
typedef struct __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *This);

    /*** TimerElapsedHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *This,
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *timer);

    END_INTERFACE
} __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandlerVtbl;

interface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler {
    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Release(This) (This)->lpVtbl->Release(This)
/*** TimerElapsedHandler methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Invoke(This,timer) (This)->lpVtbl->Invoke(This,timer)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_AddRef(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Release(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler* This) {
    return This->lpVtbl->Release(This);
}
/*** TimerElapsedHandler methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Invoke(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler* This,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *timer) {
    return This->lpVtbl->Invoke(This,timer);
}
#endif
#ifdef WIDL_using_Windows_System_Threading
#define IID_TimerElapsedHandler IID___x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler
#define TimerElapsedHandlerVtbl __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandlerVtbl
#define TimerElapsedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler
#define TimerElapsedHandler_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_QueryInterface
#define TimerElapsedHandler_AddRef __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_AddRef
#define TimerElapsedHandler_Release __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Release
#define TimerElapsedHandler_Invoke __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Invoke
#endif /* WIDL_using_Windows_System_Threading */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * TimerDestroyedHandler interface
 */
#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 0xfb,0x50,0x94,0xee,0xec,0x35);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                MIDL_INTERFACE("34ed19fa-8384-4eb9-8209-fb5094eeec35")
                TimerDestroyedHandler : public IUnknown
                {
                    virtual HRESULT STDMETHODCALLTYPE Invoke(
                        ABI::Windows::System::Threading::IThreadPoolTimer *timer) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 0xfb,0x50,0x94,0xee,0xec,0x35)
#endif
#else
typedef struct __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *This);

    /*** TimerDestroyedHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *This,
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *timer);

    END_INTERFACE
} __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandlerVtbl;

interface __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler {
    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Release(This) (This)->lpVtbl->Release(This)
/*** TimerDestroyedHandler methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Invoke(This,timer) (This)->lpVtbl->Invoke(This,timer)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_AddRef(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Release(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler* This) {
    return This->lpVtbl->Release(This);
}
/*** TimerDestroyedHandler methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Invoke(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler* This,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *timer) {
    return This->lpVtbl->Invoke(This,timer);
}
#endif
#ifdef WIDL_using_Windows_System_Threading
#define IID_TimerDestroyedHandler IID___x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler
#define TimerDestroyedHandlerVtbl __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandlerVtbl
#define TimerDestroyedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler
#define TimerDestroyedHandler_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_QueryInterface
#define TimerDestroyedHandler_AddRef __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_AddRef
#define TimerDestroyedHandler_Release __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Release
#define TimerDestroyedHandler_Invoke __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Invoke
#endif /* WIDL_using_Windows_System_Threading */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * WorkItemHandler interface
 */
#ifndef ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 0xb6,0x5f,0xc9,0x9d,0x17,0xfa);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                MIDL_INTERFACE("1d1a8b8b-fa66-414f-9cbd-b65fc99d17fa")
                WorkItemHandler : public IUnknown
                {
                    virtual HRESULT STDMETHODCALLTYPE Invoke(
                        ABI::Windows::Foundation::IAsyncAction *operation) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 0xb6,0x5f,0xc9,0x9d,0x17,0xfa)
#endif
#else
typedef struct __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *This);

    /*** WorkItemHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *This,
        __x_ABI_CWindows_CFoundation_CIAsyncAction *operation);

    END_INTERFACE
} __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandlerVtbl;

interface __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler {
    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Release(This) (This)->lpVtbl->Release(This)
/*** WorkItemHandler methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Invoke(This,operation) (This)->lpVtbl->Invoke(This,operation)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_AddRef(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Release(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler* This) {
    return This->lpVtbl->Release(This);
}
/*** WorkItemHandler methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Invoke(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler* This,__x_ABI_CWindows_CFoundation_CIAsyncAction *operation) {
    return This->lpVtbl->Invoke(This,operation);
}
#endif
#ifdef WIDL_using_Windows_System_Threading
#define IID_WorkItemHandler IID___x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler
#define WorkItemHandlerVtbl __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandlerVtbl
#define WorkItemHandler __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler
#define WorkItemHandler_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_QueryInterface
#define WorkItemHandler_AddRef __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_AddRef
#define WorkItemHandler_Release __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Release
#define WorkItemHandler_Invoke __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Invoke
#endif /* WIDL_using_Windows_System_Threading */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IThreadPoolStatics interface
 */
#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 0x93,0xeb,0xcb,0x9d,0xba,0x91);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                MIDL_INTERFACE("b6bf67dd-84bd-44f8-ac1c-93ebcb9dba91")
                IThreadPoolStatics : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE RunAsync(
                        ABI::Windows::System::Threading::WorkItemHandler *handler,
                        ABI::Windows::Foundation::IAsyncAction **operation) = 0;

                    virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAsync(
                        ABI::Windows::System::Threading::WorkItemHandler *handler,
                        enum WorkItemPriority priority,
                        ABI::Windows::Foundation::IAsyncAction **operation) = 0;

                    virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAndOptionsAsync(
                        ABI::Windows::System::Threading::WorkItemHandler *handler,
                        enum WorkItemPriority priority,
                        enum WorkItemOptions options,
                        ABI::Windows::Foundation::IAsyncAction **operation) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 0x93,0xeb,0xcb,0x9d,0xba,0x91)
#endif
#else
typedef struct __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStaticsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
        TrustLevel *trustLevel);

    /*** IThreadPoolStatics methods ***/
    HRESULT (STDMETHODCALLTYPE *RunAsync)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,
        __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);

    HRESULT (STDMETHODCALLTYPE *RunWithPriorityAsync)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,
        enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority priority,
        __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);

    HRESULT (STDMETHODCALLTYPE *RunWithPriorityAndOptionsAsync)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,
        enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority priority,
        enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions options,
        __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);

    END_INTERFACE
} __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStaticsVtbl;

interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics {
    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IThreadPoolStatics methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunAsync(This,handler,operation) (This)->lpVtbl->RunAsync(This,handler,operation)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAsync(This,handler,priority,operation) (This)->lpVtbl->RunWithPriorityAsync(This,handler,priority,operation)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation) (This)->lpVtbl->RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_AddRef(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_Release(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetIids(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetRuntimeClassName(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetTrustLevel(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IThreadPoolStatics methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunAsync(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,__x_ABI_CWindows_CFoundation_CIAsyncAction **operation) {
    return This->lpVtbl->RunAsync(This,handler,operation);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAsync(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority priority,__x_ABI_CWindows_CFoundation_CIAsyncAction **operation) {
    return This->lpVtbl->RunWithPriorityAsync(This,handler,priority,operation);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAndOptionsAsync(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority priority,enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions options,__x_ABI_CWindows_CFoundation_CIAsyncAction **operation) {
    return This->lpVtbl->RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation);
}
#endif
#ifdef WIDL_using_Windows_System_Threading
#define IID_IThreadPoolStatics IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics
#define IThreadPoolStaticsVtbl __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStaticsVtbl
#define IThreadPoolStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics
#define IThreadPoolStatics_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_QueryInterface
#define IThreadPoolStatics_AddRef __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_AddRef
#define IThreadPoolStatics_Release __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_Release
#define IThreadPoolStatics_GetIids __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetIids
#define IThreadPoolStatics_GetRuntimeClassName __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetRuntimeClassName
#define IThreadPoolStatics_GetTrustLevel __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetTrustLevel
#define IThreadPoolStatics_RunAsync __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunAsync
#define IThreadPoolStatics_RunWithPriorityAsync __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAsync
#define IThreadPoolStatics_RunWithPriorityAndOptionsAsync __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAndOptionsAsync
#endif /* WIDL_using_Windows_System_Threading */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IThreadPoolTimer interface
 */
#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 0x34,0x02,0xae,0x1f,0x9c,0xf2);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                MIDL_INTERFACE("594ebe78-55ea-4a88-a50d-3402ae1f9cf2")
                IThreadPoolTimer : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE get_Period(
                        struct TimeSpan *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_Delay(
                        struct TimeSpan *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE Cancel(
                        ) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 0x34,0x02,0xae,0x1f,0x9c,0xf2)
#endif
#else
typedef struct __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
        TrustLevel *trustLevel);

    /*** IThreadPoolTimer methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Period)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan *value);

    HRESULT (STDMETHODCALLTYPE *get_Delay)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan *value);

    HRESULT (STDMETHODCALLTYPE *Cancel)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This);

    END_INTERFACE
} __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerVtbl;

interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer {
    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IThreadPoolTimer methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Period(This,value) (This)->lpVtbl->get_Period(This,value)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Delay(This,value) (This)->lpVtbl->get_Delay(This,value)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Cancel(This) (This)->lpVtbl->Cancel(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_AddRef(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Release(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetIids(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetRuntimeClassName(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetTrustLevel(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IThreadPoolTimer methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Period(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,struct __x_ABI_CWindows_CFoundation_CTimeSpan *value) {
    return This->lpVtbl->get_Period(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Delay(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,struct __x_ABI_CWindows_CFoundation_CTimeSpan *value) {
    return This->lpVtbl->get_Delay(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Cancel(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This) {
    return This->lpVtbl->Cancel(This);
}
#endif
#ifdef WIDL_using_Windows_System_Threading
#define IID_IThreadPoolTimer IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer
#define IThreadPoolTimerVtbl __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerVtbl
#define IThreadPoolTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer
#define IThreadPoolTimer_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_QueryInterface
#define IThreadPoolTimer_AddRef __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_AddRef
#define IThreadPoolTimer_Release __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Release
#define IThreadPoolTimer_GetIids __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetIids
#define IThreadPoolTimer_GetRuntimeClassName __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetRuntimeClassName
#define IThreadPoolTimer_GetTrustLevel __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetTrustLevel
#define IThreadPoolTimer_get_Period __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Period
#define IThreadPoolTimer_get_Delay __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Delay
#define IThreadPoolTimer_Cancel __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Cancel
#endif /* WIDL_using_Windows_System_Threading */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IThreadPoolTimerStatics interface
 */
#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace System {
            namespace Threading {
                MIDL_INTERFACE("1a8a9d02-e482-461b-b8c7-8efad1cce590")
                IThreadPoolTimerStatics : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimer(
                        ABI::Windows::System::Threading::TimerElapsedHandler *handler,
                        struct TimeSpan period,
                        ABI::Windows::System::Threading::IThreadPoolTimer **timer) = 0;

                    virtual HRESULT STDMETHODCALLTYPE CreateTimer(
                        ABI::Windows::System::Threading::TimerElapsedHandler *handler,
                        struct TimeSpan delay,
                        ABI::Windows::System::Threading::IThreadPoolTimer **timer) = 0;

                    virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimerWithCompletion(
                        ABI::Windows::System::Threading::TimerElapsedHandler *handler,
                        struct TimeSpan period,
                        ABI::Windows::System::Threading::TimerDestroyedHandler *destroyed,
                        ABI::Windows::System::Threading::IThreadPoolTimer **timer) = 0;

                    virtual HRESULT STDMETHODCALLTYPE CreateTimerWithCompletion(
                        ABI::Windows::System::Threading::TimerElapsedHandler *handler,
                        struct TimeSpan delay,
                        ABI::Windows::System::Threading::TimerDestroyedHandler *destroyed,
                        ABI::Windows::System::Threading::IThreadPoolTimer **timer) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90)
#endif
#else
typedef struct __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStaticsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
        TrustLevel *trustLevel);

    /*** IThreadPoolTimerStatics methods ***/
    HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimer)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan period,
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer);

    HRESULT (STDMETHODCALLTYPE *CreateTimer)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan delay,
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer);

    HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimerWithCompletion)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan period,
        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer);

    HRESULT (STDMETHODCALLTYPE *CreateTimerWithCompletion)(
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan delay,
        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,
        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer);

    END_INTERFACE
} __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStaticsVtbl;

interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics {
    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IThreadPoolTimerStatics methods ***/
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimer(This,handler,period,timer) (This)->lpVtbl->CreatePeriodicTimer(This,handler,period,timer)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimer(This,handler,delay,timer) (This)->lpVtbl->CreateTimer(This,handler,delay,timer)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer) (This)->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer)
#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimerWithCompletion(This,handler,delay,destroyed,timer) (This)->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_AddRef(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_Release(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetIids(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetRuntimeClassName(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetTrustLevel(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IThreadPoolTimerStatics methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimer(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CFoundation_CTimeSpan period,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) {
    return This->lpVtbl->CreatePeriodicTimer(This,handler,period,timer);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimer(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CFoundation_CTimeSpan delay,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) {
    return This->lpVtbl->CreateTimer(This,handler,delay,timer);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CFoundation_CTimeSpan period,__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) {
    return This->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimerWithCompletion(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CFoundation_CTimeSpan delay,__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) {
    return This->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer);
}
#endif
#ifdef WIDL_using_Windows_System_Threading
#define IID_IThreadPoolTimerStatics IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics
#define IThreadPoolTimerStaticsVtbl __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStaticsVtbl
#define IThreadPoolTimerStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics
#define IThreadPoolTimerStatics_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_QueryInterface
#define IThreadPoolTimerStatics_AddRef __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_AddRef
#define IThreadPoolTimerStatics_Release __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_Release
#define IThreadPoolTimerStatics_GetIids __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetIids
#define IThreadPoolTimerStatics_GetRuntimeClassName __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetRuntimeClassName
#define IThreadPoolTimerStatics_GetTrustLevel __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetTrustLevel
#define IThreadPoolTimerStatics_CreatePeriodicTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimer
#define IThreadPoolTimerStatics_CreateTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimer
#define IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion
#define IThreadPoolTimerStatics_CreateTimerWithCompletion __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimerWithCompletion
#endif /* WIDL_using_Windows_System_Threading */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __windows_system_threading_h__ */
