| /** | |
| * 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. | |
| */ | |
| #ifdef __WIDL__ | |
| #pragma winrt ns_prefix | |
| #endif | |
| import "inspectable.idl"; | |
| import "windows.foundation.idl"; | |
| namespace Windows { | |
| namespace Foundation { | |
| interface IAsyncAction; | |
| } | |
| namespace System { | |
| namespace Threading { | |
| typedef enum WorkItemPriority WorkItemPriority; | |
| typedef enum WorkItemOptions WorkItemOptions; | |
| interface TimerElapsedHandler; //delegate | |
| interface TimerDestroyedHandler; //delegate | |
| interface WorkItemHandler; //delegate | |
| interface IThreadPoolStatics; | |
| interface IThreadPoolTimer; | |
| interface IThreadPoolTimerStatics; | |
| } | |
| } | |
| } | |
| namespace Windows { | |
| namespace System { | |
| namespace Threading | |
| { | |
| enum WorkItemPriority { | |
| Low = -1, | |
| Normal = 0, | |
| High = 1 | |
| }; | |
| enum WorkItemOptions { | |
| None = 0, | |
| TimeSliced = 1 | |
| }; | |
| 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( | |
| Windows.Foundation.IAsyncAction* operation); | |
| } | |
| [uuid(B6BF67DD-84BD-44F8-AC1C-93EBCB9DBA91)] | |
| interface IThreadPoolStatics : IInspectable | |
| { | |
| HRESULT RunAsync( | |
| WorkItemHandler* handler, | |
| Windows.Foundation.IAsyncAction** operation); | |
| HRESULT RunWithPriorityAsync( | |
| WorkItemHandler* handler, | |
| WorkItemPriority priority, | |
| Windows.Foundation.IAsyncAction** operation); | |
| HRESULT RunWithPriorityAndOptionsAsync( | |
| WorkItemHandler* handler, | |
| WorkItemPriority priority, | |
| WorkItemOptions options, | |
| Windows.Foundation.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); | |
| } | |
| } | |
| } | |
| } |