[1166] | 1 | /**
|
---|
| 2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
| 3 | * This file is part of the mingw-w64 runtime package.
|
---|
| 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
| 5 | */
|
---|
| 6 |
|
---|
| 7 | #ifdef __WIDL__
|
---|
| 8 | #pragma winrt ns_prefix
|
---|
| 9 | #endif
|
---|
| 10 |
|
---|
| 11 | import "inspectable.idl";
|
---|
| 12 | import "windows.foundation.idl";
|
---|
| 13 |
|
---|
| 14 | namespace Windows {
|
---|
| 15 | namespace Foundation {
|
---|
| 16 | interface IAsyncAction;
|
---|
| 17 | }
|
---|
| 18 |
|
---|
| 19 | namespace System {
|
---|
| 20 | namespace Threading {
|
---|
| 21 | typedef enum WorkItemPriority WorkItemPriority;
|
---|
| 22 | typedef enum WorkItemOptions WorkItemOptions;
|
---|
| 23 | interface TimerElapsedHandler; //delegate
|
---|
| 24 | interface TimerDestroyedHandler; //delegate
|
---|
| 25 | interface WorkItemHandler; //delegate
|
---|
| 26 | interface IThreadPoolStatics;
|
---|
| 27 | interface IThreadPoolTimer;
|
---|
| 28 | interface IThreadPoolTimerStatics;
|
---|
| 29 | }
|
---|
| 30 | }
|
---|
| 31 | }
|
---|
| 32 |
|
---|
| 33 | namespace Windows {
|
---|
| 34 | namespace System {
|
---|
| 35 | namespace Threading
|
---|
| 36 | {
|
---|
| 37 | enum WorkItemPriority {
|
---|
| 38 | Low = -1,
|
---|
| 39 | Normal = 0,
|
---|
| 40 | High = 1
|
---|
| 41 | };
|
---|
| 42 |
|
---|
| 43 | enum WorkItemOptions {
|
---|
| 44 | None = 0,
|
---|
| 45 | TimeSliced = 1
|
---|
| 46 | };
|
---|
| 47 |
|
---|
| 48 | typedef struct TimeSpan {
|
---|
| 49 | INT64 Duration;
|
---|
| 50 | } TimeSpan;
|
---|
| 51 |
|
---|
| 52 | [uuid(FAAEA667-FBEB-49CB-ADB2-71184C556E43)]
|
---|
| 53 | interface TimerElapsedHandler : IUnknown {
|
---|
| 54 | HRESULT Invoke(IThreadPoolTimer* timer);
|
---|
| 55 | }
|
---|
| 56 |
|
---|
| 57 | [uuid(34ED19FA-8384-4EB9-8209-FB5094EEEC35)]
|
---|
| 58 | interface TimerDestroyedHandler : IUnknown {
|
---|
| 59 | HRESULT Invoke(IThreadPoolTimer* timer);
|
---|
| 60 | }
|
---|
| 61 |
|
---|
| 62 | [uuid(1D1A8B8B-FA66-414F-9CBD-B65FC99D17FA)]
|
---|
| 63 | interface WorkItemHandler : IUnknown {
|
---|
| 64 | HRESULT Invoke(
|
---|
| 65 | Windows.Foundation.IAsyncAction* operation);
|
---|
| 66 | }
|
---|
| 67 |
|
---|
| 68 | [uuid(B6BF67DD-84BD-44F8-AC1C-93EBCB9DBA91)]
|
---|
| 69 | interface IThreadPoolStatics : IInspectable
|
---|
| 70 | {
|
---|
| 71 | HRESULT RunAsync(
|
---|
| 72 | WorkItemHandler* handler,
|
---|
| 73 | Windows.Foundation.IAsyncAction** operation);
|
---|
| 74 |
|
---|
| 75 | HRESULT RunWithPriorityAsync(
|
---|
| 76 | WorkItemHandler* handler,
|
---|
| 77 | WorkItemPriority priority,
|
---|
| 78 | Windows.Foundation.IAsyncAction** operation);
|
---|
| 79 |
|
---|
| 80 | HRESULT RunWithPriorityAndOptionsAsync(
|
---|
| 81 | WorkItemHandler* handler,
|
---|
| 82 | WorkItemPriority priority,
|
---|
| 83 | WorkItemOptions options,
|
---|
| 84 | Windows.Foundation.IAsyncAction** operation);
|
---|
| 85 | }
|
---|
| 86 |
|
---|
| 87 | [uuid(594EBE78-55EA-4A88-A50D-3402AE1F9CF2)]
|
---|
| 88 | interface IThreadPoolTimer : IInspectable
|
---|
| 89 | {
|
---|
| 90 | [propget] HRESULT Period(TimeSpan* value);
|
---|
| 91 | [propget] HRESULT Delay(TimeSpan* value);
|
---|
| 92 | HRESULT Cancel();
|
---|
| 93 | }
|
---|
| 94 |
|
---|
| 95 | [uuid(1A8A9D02-E482-461B-B8C7-8EFAD1CCE590)]
|
---|
| 96 | interface IThreadPoolTimerStatics : IInspectable
|
---|
| 97 | {
|
---|
| 98 | HRESULT CreatePeriodicTimer(
|
---|
| 99 | TimerElapsedHandler* handler,
|
---|
| 100 | TimeSpan period,
|
---|
| 101 | IThreadPoolTimer** timer);
|
---|
| 102 |
|
---|
| 103 | HRESULT CreateTimer(
|
---|
| 104 | TimerElapsedHandler* handler,
|
---|
| 105 | TimeSpan delay,
|
---|
| 106 | IThreadPoolTimer** timer);
|
---|
| 107 |
|
---|
| 108 | HRESULT CreatePeriodicTimerWithCompletion(
|
---|
| 109 | TimerElapsedHandler* handler,
|
---|
| 110 | TimeSpan period,
|
---|
| 111 | TimerDestroyedHandler* destroyed,
|
---|
| 112 | IThreadPoolTimer** timer);
|
---|
| 113 |
|
---|
| 114 | HRESULT CreateTimerWithCompletion(
|
---|
| 115 | TimerElapsedHandler* handler,
|
---|
| 116 | TimeSpan delay,
|
---|
| 117 | TimerDestroyedHandler* destroyed,
|
---|
| 118 | IThreadPoolTimer** timer);
|
---|
| 119 | }
|
---|
| 120 | }
|
---|
| 121 | }
|
---|
| 122 | }
|
---|