zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

rtworkq.h (15193B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/rtworkq.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __rtworkq_h__
     17 #define __rtworkq_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __IRtwqAsyncResult_FWD_DEFINED__
     22 #define __IRtwqAsyncResult_FWD_DEFINED__
     23 typedef interface IRtwqAsyncResult IRtwqAsyncResult;
     24 #ifdef __cplusplus
     25 interface IRtwqAsyncResult;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IRtwqAsyncCallback_FWD_DEFINED__
     30 #define __IRtwqAsyncCallback_FWD_DEFINED__
     31 typedef interface IRtwqAsyncCallback IRtwqAsyncCallback;
     32 #ifdef __cplusplus
     33 interface IRtwqAsyncCallback;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IRtwqPlatformEvents_FWD_DEFINED__
     38 #define __IRtwqPlatformEvents_FWD_DEFINED__
     39 typedef interface IRtwqPlatformEvents IRtwqPlatformEvents;
     40 #ifdef __cplusplus
     41 interface IRtwqPlatformEvents;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 /* Headers for imported files */
     46 
     47 #include <unknwn.h>
     48 
     49 #ifdef __cplusplus
     50 extern "C" {
     51 #endif
     52 
     53 typedef enum __WIDL_rtworkq_generated_name_0000000C {
     54     RTWQ_STANDARD_WORKQUEUE = 0,
     55     RTWQ_WINDOW_WORKQUEUE = 1,
     56     RTWQ_MULTITHREADED_WORKQUEUE = 2
     57 } RTWQ_WORKQUEUE_TYPE;
     58 typedef UINT64 RTWQWORKITEM_KEY;
     59 /*****************************************************************************
     60  * IRtwqAsyncResult interface
     61  */
     62 #ifndef __IRtwqAsyncResult_INTERFACE_DEFINED__
     63 #define __IRtwqAsyncResult_INTERFACE_DEFINED__
     64 
     65 DEFINE_GUID(IID_IRtwqAsyncResult, 0xac6b7889, 0x0740, 0x4d51, 0x86,0x19, 0x90,0x59,0x94,0xa5,0x5c,0xc6);
     66 #if defined(__cplusplus) && !defined(CINTERFACE)
     67 MIDL_INTERFACE("ac6b7889-0740-4d51-8619-905994a55cc6")
     68 IRtwqAsyncResult : public IUnknown
     69 {
     70     virtual HRESULT STDMETHODCALLTYPE GetState(
     71         IUnknown **state) = 0;
     72 
     73     virtual HRESULT STDMETHODCALLTYPE GetStatus(
     74         ) = 0;
     75 
     76     virtual HRESULT STDMETHODCALLTYPE SetStatus(
     77         HRESULT status) = 0;
     78 
     79     virtual HRESULT STDMETHODCALLTYPE GetObject(
     80         IUnknown **object) = 0;
     81 
     82     virtual IUnknown * STDMETHODCALLTYPE GetStateNoAddRef(
     83         ) = 0;
     84 
     85 };
     86 #ifdef __CRT_UUID_DECL
     87 __CRT_UUID_DECL(IRtwqAsyncResult, 0xac6b7889, 0x0740, 0x4d51, 0x86,0x19, 0x90,0x59,0x94,0xa5,0x5c,0xc6)
     88 #endif
     89 #else
     90 typedef struct IRtwqAsyncResultVtbl {
     91     BEGIN_INTERFACE
     92 
     93     /*** IUnknown methods ***/
     94     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
     95         IRtwqAsyncResult *This,
     96         REFIID riid,
     97         void **ppvObject);
     98 
     99     ULONG (STDMETHODCALLTYPE *AddRef)(
    100         IRtwqAsyncResult *This);
    101 
    102     ULONG (STDMETHODCALLTYPE *Release)(
    103         IRtwqAsyncResult *This);
    104 
    105     /*** IRtwqAsyncResult methods ***/
    106     HRESULT (STDMETHODCALLTYPE *GetState)(
    107         IRtwqAsyncResult *This,
    108         IUnknown **state);
    109 
    110     HRESULT (STDMETHODCALLTYPE *GetStatus)(
    111         IRtwqAsyncResult *This);
    112 
    113     HRESULT (STDMETHODCALLTYPE *SetStatus)(
    114         IRtwqAsyncResult *This,
    115         HRESULT status);
    116 
    117     HRESULT (STDMETHODCALLTYPE *GetObject)(
    118         IRtwqAsyncResult *This,
    119         IUnknown **object);
    120 
    121     IUnknown * (STDMETHODCALLTYPE *GetStateNoAddRef)(
    122         IRtwqAsyncResult *This);
    123 
    124     END_INTERFACE
    125 } IRtwqAsyncResultVtbl;
    126 
    127 interface IRtwqAsyncResult {
    128     CONST_VTBL IRtwqAsyncResultVtbl* lpVtbl;
    129 };
    130 
    131 #ifdef COBJMACROS
    132 #ifndef WIDL_C_INLINE_WRAPPERS
    133 /*** IUnknown methods ***/
    134 #define IRtwqAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    135 #define IRtwqAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This)
    136 #define IRtwqAsyncResult_Release(This) (This)->lpVtbl->Release(This)
    137 /*** IRtwqAsyncResult methods ***/
    138 #define IRtwqAsyncResult_GetState(This,state) (This)->lpVtbl->GetState(This,state)
    139 #define IRtwqAsyncResult_GetStatus(This) (This)->lpVtbl->GetStatus(This)
    140 #define IRtwqAsyncResult_SetStatus(This,status) (This)->lpVtbl->SetStatus(This,status)
    141 #define IRtwqAsyncResult_GetObject(This,object) (This)->lpVtbl->GetObject(This,object)
    142 #define IRtwqAsyncResult_GetStateNoAddRef(This) (This)->lpVtbl->GetStateNoAddRef(This)
    143 #else
    144 /*** IUnknown methods ***/
    145 static inline HRESULT IRtwqAsyncResult_QueryInterface(IRtwqAsyncResult* This,REFIID riid,void **ppvObject) {
    146     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    147 }
    148 static inline ULONG IRtwqAsyncResult_AddRef(IRtwqAsyncResult* This) {
    149     return This->lpVtbl->AddRef(This);
    150 }
    151 static inline ULONG IRtwqAsyncResult_Release(IRtwqAsyncResult* This) {
    152     return This->lpVtbl->Release(This);
    153 }
    154 /*** IRtwqAsyncResult methods ***/
    155 static inline HRESULT IRtwqAsyncResult_GetState(IRtwqAsyncResult* This,IUnknown **state) {
    156     return This->lpVtbl->GetState(This,state);
    157 }
    158 static inline HRESULT IRtwqAsyncResult_GetStatus(IRtwqAsyncResult* This) {
    159     return This->lpVtbl->GetStatus(This);
    160 }
    161 static inline HRESULT IRtwqAsyncResult_SetStatus(IRtwqAsyncResult* This,HRESULT status) {
    162     return This->lpVtbl->SetStatus(This,status);
    163 }
    164 static inline HRESULT IRtwqAsyncResult_GetObject(IRtwqAsyncResult* This,IUnknown **object) {
    165     return This->lpVtbl->GetObject(This,object);
    166 }
    167 static inline IUnknown * IRtwqAsyncResult_GetStateNoAddRef(IRtwqAsyncResult* This) {
    168     return This->lpVtbl->GetStateNoAddRef(This);
    169 }
    170 #endif
    171 #endif
    172 
    173 #endif
    174 
    175 
    176 #endif  /* __IRtwqAsyncResult_INTERFACE_DEFINED__ */
    177 
    178 /*****************************************************************************
    179  * IRtwqAsyncCallback interface
    180  */
    181 #ifndef __IRtwqAsyncCallback_INTERFACE_DEFINED__
    182 #define __IRtwqAsyncCallback_INTERFACE_DEFINED__
    183 
    184 DEFINE_GUID(IID_IRtwqAsyncCallback, 0xa27003cf, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e);
    185 #if defined(__cplusplus) && !defined(CINTERFACE)
    186 MIDL_INTERFACE("a27003cf-2354-4f2a-8d6a-ab7cff15437e")
    187 IRtwqAsyncCallback : public IUnknown
    188 {
    189     virtual HRESULT STDMETHODCALLTYPE GetParameters(
    190         DWORD *flags,
    191         DWORD *queue) = 0;
    192 
    193     virtual HRESULT STDMETHODCALLTYPE Invoke(
    194         IRtwqAsyncResult *result) = 0;
    195 
    196 };
    197 #ifdef __CRT_UUID_DECL
    198 __CRT_UUID_DECL(IRtwqAsyncCallback, 0xa27003cf, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e)
    199 #endif
    200 #else
    201 typedef struct IRtwqAsyncCallbackVtbl {
    202     BEGIN_INTERFACE
    203 
    204     /*** IUnknown methods ***/
    205     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    206         IRtwqAsyncCallback *This,
    207         REFIID riid,
    208         void **ppvObject);
    209 
    210     ULONG (STDMETHODCALLTYPE *AddRef)(
    211         IRtwqAsyncCallback *This);
    212 
    213     ULONG (STDMETHODCALLTYPE *Release)(
    214         IRtwqAsyncCallback *This);
    215 
    216     /*** IRtwqAsyncCallback methods ***/
    217     HRESULT (STDMETHODCALLTYPE *GetParameters)(
    218         IRtwqAsyncCallback *This,
    219         DWORD *flags,
    220         DWORD *queue);
    221 
    222     HRESULT (STDMETHODCALLTYPE *Invoke)(
    223         IRtwqAsyncCallback *This,
    224         IRtwqAsyncResult *result);
    225 
    226     END_INTERFACE
    227 } IRtwqAsyncCallbackVtbl;
    228 
    229 interface IRtwqAsyncCallback {
    230     CONST_VTBL IRtwqAsyncCallbackVtbl* lpVtbl;
    231 };
    232 
    233 #ifdef COBJMACROS
    234 #ifndef WIDL_C_INLINE_WRAPPERS
    235 /*** IUnknown methods ***/
    236 #define IRtwqAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    237 #define IRtwqAsyncCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
    238 #define IRtwqAsyncCallback_Release(This) (This)->lpVtbl->Release(This)
    239 /*** IRtwqAsyncCallback methods ***/
    240 #define IRtwqAsyncCallback_GetParameters(This,flags,queue) (This)->lpVtbl->GetParameters(This,flags,queue)
    241 #define IRtwqAsyncCallback_Invoke(This,result) (This)->lpVtbl->Invoke(This,result)
    242 #else
    243 /*** IUnknown methods ***/
    244 static inline HRESULT IRtwqAsyncCallback_QueryInterface(IRtwqAsyncCallback* This,REFIID riid,void **ppvObject) {
    245     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    246 }
    247 static inline ULONG IRtwqAsyncCallback_AddRef(IRtwqAsyncCallback* This) {
    248     return This->lpVtbl->AddRef(This);
    249 }
    250 static inline ULONG IRtwqAsyncCallback_Release(IRtwqAsyncCallback* This) {
    251     return This->lpVtbl->Release(This);
    252 }
    253 /*** IRtwqAsyncCallback methods ***/
    254 static inline HRESULT IRtwqAsyncCallback_GetParameters(IRtwqAsyncCallback* This,DWORD *flags,DWORD *queue) {
    255     return This->lpVtbl->GetParameters(This,flags,queue);
    256 }
    257 static inline HRESULT IRtwqAsyncCallback_Invoke(IRtwqAsyncCallback* This,IRtwqAsyncResult *result) {
    258     return This->lpVtbl->Invoke(This,result);
    259 }
    260 #endif
    261 #endif
    262 
    263 #endif
    264 
    265 
    266 #endif  /* __IRtwqAsyncCallback_INTERFACE_DEFINED__ */
    267 
    268 /*****************************************************************************
    269  * IRtwqPlatformEvents interface
    270  */
    271 #ifndef __IRtwqPlatformEvents_INTERFACE_DEFINED__
    272 #define __IRtwqPlatformEvents_INTERFACE_DEFINED__
    273 
    274 DEFINE_GUID(IID_IRtwqPlatformEvents, 0x63d9255a, 0x7ff1, 0x4b61, 0x8f,0xaf, 0xed,0x64,0x60,0xda,0xcf,0x2b);
    275 #if defined(__cplusplus) && !defined(CINTERFACE)
    276 MIDL_INTERFACE("63d9255a-7ff1-4b61-8faf-ed6460dacf2b")
    277 IRtwqPlatformEvents : public IUnknown
    278 {
    279     virtual HRESULT STDMETHODCALLTYPE InitializationComplete(
    280         ) = 0;
    281 
    282     virtual HRESULT STDMETHODCALLTYPE ShutdownStart(
    283         ) = 0;
    284 
    285     virtual HRESULT STDMETHODCALLTYPE ShutdownComplete(
    286         ) = 0;
    287 
    288 };
    289 #ifdef __CRT_UUID_DECL
    290 __CRT_UUID_DECL(IRtwqPlatformEvents, 0x63d9255a, 0x7ff1, 0x4b61, 0x8f,0xaf, 0xed,0x64,0x60,0xda,0xcf,0x2b)
    291 #endif
    292 #else
    293 typedef struct IRtwqPlatformEventsVtbl {
    294     BEGIN_INTERFACE
    295 
    296     /*** IUnknown methods ***/
    297     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    298         IRtwqPlatformEvents *This,
    299         REFIID riid,
    300         void **ppvObject);
    301 
    302     ULONG (STDMETHODCALLTYPE *AddRef)(
    303         IRtwqPlatformEvents *This);
    304 
    305     ULONG (STDMETHODCALLTYPE *Release)(
    306         IRtwqPlatformEvents *This);
    307 
    308     /*** IRtwqPlatformEvents methods ***/
    309     HRESULT (STDMETHODCALLTYPE *InitializationComplete)(
    310         IRtwqPlatformEvents *This);
    311 
    312     HRESULT (STDMETHODCALLTYPE *ShutdownStart)(
    313         IRtwqPlatformEvents *This);
    314 
    315     HRESULT (STDMETHODCALLTYPE *ShutdownComplete)(
    316         IRtwqPlatformEvents *This);
    317 
    318     END_INTERFACE
    319 } IRtwqPlatformEventsVtbl;
    320 
    321 interface IRtwqPlatformEvents {
    322     CONST_VTBL IRtwqPlatformEventsVtbl* lpVtbl;
    323 };
    324 
    325 #ifdef COBJMACROS
    326 #ifndef WIDL_C_INLINE_WRAPPERS
    327 /*** IUnknown methods ***/
    328 #define IRtwqPlatformEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    329 #define IRtwqPlatformEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
    330 #define IRtwqPlatformEvents_Release(This) (This)->lpVtbl->Release(This)
    331 /*** IRtwqPlatformEvents methods ***/
    332 #define IRtwqPlatformEvents_InitializationComplete(This) (This)->lpVtbl->InitializationComplete(This)
    333 #define IRtwqPlatformEvents_ShutdownStart(This) (This)->lpVtbl->ShutdownStart(This)
    334 #define IRtwqPlatformEvents_ShutdownComplete(This) (This)->lpVtbl->ShutdownComplete(This)
    335 #else
    336 /*** IUnknown methods ***/
    337 static inline HRESULT IRtwqPlatformEvents_QueryInterface(IRtwqPlatformEvents* This,REFIID riid,void **ppvObject) {
    338     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    339 }
    340 static inline ULONG IRtwqPlatformEvents_AddRef(IRtwqPlatformEvents* This) {
    341     return This->lpVtbl->AddRef(This);
    342 }
    343 static inline ULONG IRtwqPlatformEvents_Release(IRtwqPlatformEvents* This) {
    344     return This->lpVtbl->Release(This);
    345 }
    346 /*** IRtwqPlatformEvents methods ***/
    347 static inline HRESULT IRtwqPlatformEvents_InitializationComplete(IRtwqPlatformEvents* This) {
    348     return This->lpVtbl->InitializationComplete(This);
    349 }
    350 static inline HRESULT IRtwqPlatformEvents_ShutdownStart(IRtwqPlatformEvents* This) {
    351     return This->lpVtbl->ShutdownStart(This);
    352 }
    353 static inline HRESULT IRtwqPlatformEvents_ShutdownComplete(IRtwqPlatformEvents* This) {
    354     return This->lpVtbl->ShutdownComplete(This);
    355 }
    356 #endif
    357 #endif
    358 
    359 #endif
    360 
    361 
    362 #endif  /* __IRtwqPlatformEvents_INTERFACE_DEFINED__ */
    363 
    364 #define RTWQ_E_ERROR(x)            ((HRESULT)(0xc00d0000L+x))
    365 #define RTWQ_E_BUFFERTOOSMALL      RTWQ_E_ERROR(14001)
    366 #define RTWQ_E_NOT_INITIALIZED     RTWQ_E_ERROR(14006)
    367 #define RTWQ_E_UNEXPECTED          RTWQ_E_ERROR(14011)
    368 #define RTWQ_E_NOT_FOUND           RTWQ_E_ERROR(14037)
    369 #define RTWQ_E_OPERATION_CANCELLED RTWQ_E_ERROR(14061)
    370 #define RTWQ_E_INVALID_WORKQUEUE   RTWQ_E_ERROR(14079)
    371 #define RTWQ_E_SHUTDOWN            RTWQ_E_ERROR(16005)
    372 #ifdef __WINESRC__
    373 typedef struct tagRTWQASYNCRESULT
    374 {
    375     IRtwqAsyncResult AsyncResult;
    376 #else
    377 typedef struct tagRTWQASYNCRESULT : public IRtwqAsyncResult {
    378 #endif
    379     OVERLAPPED overlapped;
    380     IRtwqAsyncCallback *pCallback;
    381     HRESULT hrStatusResult;
    382     DWORD dwBytesTransferred;
    383     HANDLE hEvent;
    384 } RTWQASYNCRESULT;
    385 typedef void (WINAPI *RTWQPERIODICCALLBACK)(IUnknown *context);
    386 HRESULT WINAPI RtwqAddPeriodicCallback(RTWQPERIODICCALLBACK callback, IUnknown *context, DWORD *key);
    387 HRESULT WINAPI RtwqAllocateSerialWorkQueue(DWORD target_queue, DWORD *queue);
    388 HRESULT WINAPI RtwqAllocateWorkQueue(RTWQ_WORKQUEUE_TYPE queue_type, DWORD *queue);
    389 HRESULT WINAPI RtwqBeginRegisterWorkQueueWithMMCSS(DWORD queue, const WCHAR *mmcss_class, DWORD taskid, LONG priority, IRtwqAsyncCallback *callback, IUnknown *state);
    390 HRESULT WINAPI RtwqBeginUnregisterWorkQueueWithMMCSS(DWORD queue, IRtwqAsyncCallback *callback, IUnknown *state);
    391 HRESULT WINAPI RtwqCancelDeadline(HANDLE request);
    392 HRESULT WINAPI RtwqCancelWorkItem(RTWQWORKITEM_KEY key);
    393 HRESULT WINAPI RtwqCreateAsyncResult(IUnknown *object, IRtwqAsyncCallback *callback, IUnknown *state, IRtwqAsyncResult **result);
    394 HRESULT WINAPI RtwqEndRegisterWorkQueueWithMMCSS(IRtwqAsyncResult *result, DWORD *taskid);
    395 HRESULT WINAPI RtwqGetWorkQueueMMCSSClass(DWORD queue, WCHAR *mmcss_class, DWORD *length);
    396 HRESULT WINAPI RtwqGetWorkQueueMMCSSPriority(DWORD queue, LONG *priority);
    397 HRESULT WINAPI RtwqGetWorkQueueMMCSSTaskId(DWORD queue, DWORD *taskid);
    398 HRESULT WINAPI RtwqInvokeCallback(IRtwqAsyncResult *result);
    399 HRESULT WINAPI RtwqJoinWorkQueue(DWORD queue, HANDLE hFile, HANDLE *cookie);
    400 HRESULT WINAPI RtwqLockPlatform(void);
    401 HRESULT WINAPI RtwqLockSharedWorkQueue(const WCHAR *usageclass, LONG priority, DWORD *taskid, DWORD *queue);
    402 HRESULT WINAPI RtwqLockWorkQueue(DWORD queue);
    403 HRESULT WINAPI RtwqPutWaitingWorkItem(HANDLE event, LONG priority, IRtwqAsyncResult *result, RTWQWORKITEM_KEY *key);
    404 HRESULT WINAPI RtwqPutWorkItem(DWORD queue, LONG priority, IRtwqAsyncResult *result);
    405 HRESULT WINAPI RtwqRegisterPlatformEvents(IRtwqPlatformEvents *events);
    406 HRESULT WINAPI RtwqRegisterPlatformWithMMCSS(const WCHAR *mmcss_class, DWORD *taskid, LONG priority);
    407 HRESULT WINAPI RtwqRemovePeriodicCallback(DWORD key);
    408 HRESULT WINAPI RtwqScheduleWorkItem(IRtwqAsyncResult *result, INT64 timeout, RTWQWORKITEM_KEY *key);
    409 HRESULT WINAPI RtwqSetDeadline(DWORD queue_id, LONGLONG deadline, HANDLE *request);
    410 HRESULT WINAPI RtwqSetDeadline2(DWORD queue_id, LONGLONG deadline, LONGLONG predeadline, HANDLE *request);
    411 HRESULT WINAPI RtwqSetLongRunning(DWORD queue_id, WINBOOL enable);
    412 HRESULT WINAPI RtwqShutdown(void);
    413 HRESULT WINAPI RtwqStartup(void);
    414 HRESULT WINAPI RtwqUnjoinWorkQueue(DWORD queue, HANDLE cookie);
    415 HRESULT WINAPI RtwqUnlockPlatform(void);
    416 HRESULT WINAPI RtwqUnlockWorkQueue(DWORD queue);
    417 HRESULT WINAPI RtwqUnregisterPlatformEvents(IRtwqPlatformEvents *events);
    418 HRESULT WINAPI RtwqUnregisterPlatformFromMMCSS(void);
    419 /* Begin additional prototypes for all interfaces */
    420 
    421 
    422 /* End additional prototypes */
    423 
    424 #ifdef __cplusplus
    425 }
    426 #endif
    427 
    428 #endif /* __rtworkq_h__ */