/*** Autogenerated by WIDL 6.4 from include/rtworkq.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif #include #include #endif #ifndef COM_NO_WINDOWS_H #include #include #endif #ifndef __rtworkq_h__ #define __rtworkq_h__ /* Forward declarations */ #ifndef __IRtwqAsyncResult_FWD_DEFINED__ #define __IRtwqAsyncResult_FWD_DEFINED__ typedef interface IRtwqAsyncResult IRtwqAsyncResult; #ifdef __cplusplus interface IRtwqAsyncResult; #endif /* __cplusplus */ #endif #ifndef __IRtwqAsyncCallback_FWD_DEFINED__ #define __IRtwqAsyncCallback_FWD_DEFINED__ typedef interface IRtwqAsyncCallback IRtwqAsyncCallback; #ifdef __cplusplus interface IRtwqAsyncCallback; #endif /* __cplusplus */ #endif #ifndef __IRtwqPlatformEvents_FWD_DEFINED__ #define __IRtwqPlatformEvents_FWD_DEFINED__ typedef interface IRtwqPlatformEvents IRtwqPlatformEvents; #ifdef __cplusplus interface IRtwqPlatformEvents; #endif /* __cplusplus */ #endif /* Headers for imported files */ #include #ifdef __cplusplus extern "C" { #endif typedef enum __WIDL_rtworkq_generated_name_0000000C { RTWQ_STANDARD_WORKQUEUE = 0, RTWQ_WINDOW_WORKQUEUE = 1, RTWQ_MULTITHREADED_WORKQUEUE = 2 } RTWQ_WORKQUEUE_TYPE; typedef UINT64 RTWQWORKITEM_KEY; /***************************************************************************** * IRtwqAsyncResult interface */ #ifndef __IRtwqAsyncResult_INTERFACE_DEFINED__ #define __IRtwqAsyncResult_INTERFACE_DEFINED__ DEFINE_GUID(IID_IRtwqAsyncResult, 0xac6b7889, 0x0740, 0x4d51, 0x86,0x19, 0x90,0x59,0x94,0xa5,0x5c,0xc6); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("ac6b7889-0740-4d51-8619-905994a55cc6") IRtwqAsyncResult : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetState( IUnknown **state) = 0; virtual HRESULT STDMETHODCALLTYPE GetStatus( ) = 0; virtual HRESULT STDMETHODCALLTYPE SetStatus( HRESULT status) = 0; virtual HRESULT STDMETHODCALLTYPE GetObject( IUnknown **object) = 0; virtual IUnknown * STDMETHODCALLTYPE GetStateNoAddRef( ) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IRtwqAsyncResult, 0xac6b7889, 0x0740, 0x4d51, 0x86,0x19, 0x90,0x59,0x94,0xa5,0x5c,0xc6) #endif #else typedef struct IRtwqAsyncResultVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IRtwqAsyncResult *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IRtwqAsyncResult *This); ULONG (STDMETHODCALLTYPE *Release)( IRtwqAsyncResult *This); /*** IRtwqAsyncResult methods ***/ HRESULT (STDMETHODCALLTYPE *GetState)( IRtwqAsyncResult *This, IUnknown **state); HRESULT (STDMETHODCALLTYPE *GetStatus)( IRtwqAsyncResult *This); HRESULT (STDMETHODCALLTYPE *SetStatus)( IRtwqAsyncResult *This, HRESULT status); HRESULT (STDMETHODCALLTYPE *GetObject)( IRtwqAsyncResult *This, IUnknown **object); IUnknown * (STDMETHODCALLTYPE *GetStateNoAddRef)( IRtwqAsyncResult *This); END_INTERFACE } IRtwqAsyncResultVtbl; interface IRtwqAsyncResult { CONST_VTBL IRtwqAsyncResultVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IRtwqAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IRtwqAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This) #define IRtwqAsyncResult_Release(This) (This)->lpVtbl->Release(This) /*** IRtwqAsyncResult methods ***/ #define IRtwqAsyncResult_GetState(This,state) (This)->lpVtbl->GetState(This,state) #define IRtwqAsyncResult_GetStatus(This) (This)->lpVtbl->GetStatus(This) #define IRtwqAsyncResult_SetStatus(This,status) (This)->lpVtbl->SetStatus(This,status) #define IRtwqAsyncResult_GetObject(This,object) (This)->lpVtbl->GetObject(This,object) #define IRtwqAsyncResult_GetStateNoAddRef(This) (This)->lpVtbl->GetStateNoAddRef(This) #else /*** IUnknown methods ***/ static FORCEINLINE HRESULT IRtwqAsyncResult_QueryInterface(IRtwqAsyncResult* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static FORCEINLINE ULONG IRtwqAsyncResult_AddRef(IRtwqAsyncResult* This) { return This->lpVtbl->AddRef(This); } static FORCEINLINE ULONG IRtwqAsyncResult_Release(IRtwqAsyncResult* This) { return This->lpVtbl->Release(This); } /*** IRtwqAsyncResult methods ***/ static FORCEINLINE HRESULT IRtwqAsyncResult_GetState(IRtwqAsyncResult* This,IUnknown **state) { return This->lpVtbl->GetState(This,state); } static FORCEINLINE HRESULT IRtwqAsyncResult_GetStatus(IRtwqAsyncResult* This) { return This->lpVtbl->GetStatus(This); } static FORCEINLINE HRESULT IRtwqAsyncResult_SetStatus(IRtwqAsyncResult* This,HRESULT status) { return This->lpVtbl->SetStatus(This,status); } static FORCEINLINE HRESULT IRtwqAsyncResult_GetObject(IRtwqAsyncResult* This,IUnknown **object) { return This->lpVtbl->GetObject(This,object); } static FORCEINLINE IUnknown * IRtwqAsyncResult_GetStateNoAddRef(IRtwqAsyncResult* This) { return This->lpVtbl->GetStateNoAddRef(This); } #endif #endif #endif #endif /* __IRtwqAsyncResult_INTERFACE_DEFINED__ */ /***************************************************************************** * IRtwqAsyncCallback interface */ #ifndef __IRtwqAsyncCallback_INTERFACE_DEFINED__ #define __IRtwqAsyncCallback_INTERFACE_DEFINED__ DEFINE_GUID(IID_IRtwqAsyncCallback, 0xa27003cf, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("a27003cf-2354-4f2a-8d6a-ab7cff15437e") IRtwqAsyncCallback : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetParameters( DWORD *flags, DWORD *queue) = 0; virtual HRESULT STDMETHODCALLTYPE Invoke( IRtwqAsyncResult *result) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IRtwqAsyncCallback, 0xa27003cf, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e) #endif #else typedef struct IRtwqAsyncCallbackVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IRtwqAsyncCallback *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IRtwqAsyncCallback *This); ULONG (STDMETHODCALLTYPE *Release)( IRtwqAsyncCallback *This); /*** IRtwqAsyncCallback methods ***/ HRESULT (STDMETHODCALLTYPE *GetParameters)( IRtwqAsyncCallback *This, DWORD *flags, DWORD *queue); HRESULT (STDMETHODCALLTYPE *Invoke)( IRtwqAsyncCallback *This, IRtwqAsyncResult *result); END_INTERFACE } IRtwqAsyncCallbackVtbl; interface IRtwqAsyncCallback { CONST_VTBL IRtwqAsyncCallbackVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IRtwqAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IRtwqAsyncCallback_AddRef(This) (This)->lpVtbl->AddRef(This) #define IRtwqAsyncCallback_Release(This) (This)->lpVtbl->Release(This) /*** IRtwqAsyncCallback methods ***/ #define IRtwqAsyncCallback_GetParameters(This,flags,queue) (This)->lpVtbl->GetParameters(This,flags,queue) #define IRtwqAsyncCallback_Invoke(This,result) (This)->lpVtbl->Invoke(This,result) #else /*** IUnknown methods ***/ static FORCEINLINE HRESULT IRtwqAsyncCallback_QueryInterface(IRtwqAsyncCallback* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static FORCEINLINE ULONG IRtwqAsyncCallback_AddRef(IRtwqAsyncCallback* This) { return This->lpVtbl->AddRef(This); } static FORCEINLINE ULONG IRtwqAsyncCallback_Release(IRtwqAsyncCallback* This) { return This->lpVtbl->Release(This); } /*** IRtwqAsyncCallback methods ***/ static FORCEINLINE HRESULT IRtwqAsyncCallback_GetParameters(IRtwqAsyncCallback* This,DWORD *flags,DWORD *queue) { return This->lpVtbl->GetParameters(This,flags,queue); } static FORCEINLINE HRESULT IRtwqAsyncCallback_Invoke(IRtwqAsyncCallback* This,IRtwqAsyncResult *result) { return This->lpVtbl->Invoke(This,result); } #endif #endif #endif #endif /* __IRtwqAsyncCallback_INTERFACE_DEFINED__ */ /***************************************************************************** * IRtwqPlatformEvents interface */ #ifndef __IRtwqPlatformEvents_INTERFACE_DEFINED__ #define __IRtwqPlatformEvents_INTERFACE_DEFINED__ DEFINE_GUID(IID_IRtwqPlatformEvents, 0x63d9255a, 0x7ff1, 0x4b61, 0x8f,0xaf, 0xed,0x64,0x60,0xda,0xcf,0x2b); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("63d9255a-7ff1-4b61-8faf-ed6460dacf2b") IRtwqPlatformEvents : public IUnknown { virtual HRESULT STDMETHODCALLTYPE InitializationComplete( ) = 0; virtual HRESULT STDMETHODCALLTYPE ShutdownStart( ) = 0; virtual HRESULT STDMETHODCALLTYPE ShutdownComplete( ) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IRtwqPlatformEvents, 0x63d9255a, 0x7ff1, 0x4b61, 0x8f,0xaf, 0xed,0x64,0x60,0xda,0xcf,0x2b) #endif #else typedef struct IRtwqPlatformEventsVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IRtwqPlatformEvents *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IRtwqPlatformEvents *This); ULONG (STDMETHODCALLTYPE *Release)( IRtwqPlatformEvents *This); /*** IRtwqPlatformEvents methods ***/ HRESULT (STDMETHODCALLTYPE *InitializationComplete)( IRtwqPlatformEvents *This); HRESULT (STDMETHODCALLTYPE *ShutdownStart)( IRtwqPlatformEvents *This); HRESULT (STDMETHODCALLTYPE *ShutdownComplete)( IRtwqPlatformEvents *This); END_INTERFACE } IRtwqPlatformEventsVtbl; interface IRtwqPlatformEvents { CONST_VTBL IRtwqPlatformEventsVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IRtwqPlatformEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IRtwqPlatformEvents_AddRef(This) (This)->lpVtbl->AddRef(This) #define IRtwqPlatformEvents_Release(This) (This)->lpVtbl->Release(This) /*** IRtwqPlatformEvents methods ***/ #define IRtwqPlatformEvents_InitializationComplete(This) (This)->lpVtbl->InitializationComplete(This) #define IRtwqPlatformEvents_ShutdownStart(This) (This)->lpVtbl->ShutdownStart(This) #define IRtwqPlatformEvents_ShutdownComplete(This) (This)->lpVtbl->ShutdownComplete(This) #else /*** IUnknown methods ***/ static FORCEINLINE HRESULT IRtwqPlatformEvents_QueryInterface(IRtwqPlatformEvents* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static FORCEINLINE ULONG IRtwqPlatformEvents_AddRef(IRtwqPlatformEvents* This) { return This->lpVtbl->AddRef(This); } static FORCEINLINE ULONG IRtwqPlatformEvents_Release(IRtwqPlatformEvents* This) { return This->lpVtbl->Release(This); } /*** IRtwqPlatformEvents methods ***/ static FORCEINLINE HRESULT IRtwqPlatformEvents_InitializationComplete(IRtwqPlatformEvents* This) { return This->lpVtbl->InitializationComplete(This); } static FORCEINLINE HRESULT IRtwqPlatformEvents_ShutdownStart(IRtwqPlatformEvents* This) { return This->lpVtbl->ShutdownStart(This); } static FORCEINLINE HRESULT IRtwqPlatformEvents_ShutdownComplete(IRtwqPlatformEvents* This) { return This->lpVtbl->ShutdownComplete(This); } #endif #endif #endif #endif /* __IRtwqPlatformEvents_INTERFACE_DEFINED__ */ #define RTWQ_E_ERROR(x) ((HRESULT)(0xc00d0000L+x)) #define RTWQ_E_BUFFERTOOSMALL RTWQ_E_ERROR(14001) #define RTWQ_E_NOT_INITIALIZED RTWQ_E_ERROR(14006) #define RTWQ_E_UNEXPECTED RTWQ_E_ERROR(14011) #define RTWQ_E_NOT_FOUND RTWQ_E_ERROR(14037) #define RTWQ_E_OPERATION_CANCELLED RTWQ_E_ERROR(14061) #define RTWQ_E_INVALID_WORKQUEUE RTWQ_E_ERROR(14079) #define RTWQ_E_SHUTDOWN RTWQ_E_ERROR(16005) #ifdef __WINESRC__ typedef struct tagRTWQASYNCRESULT { IRtwqAsyncResult AsyncResult; #else typedef struct tagRTWQASYNCRESULT : public IRtwqAsyncResult { #endif OVERLAPPED overlapped; IRtwqAsyncCallback *pCallback; HRESULT hrStatusResult; DWORD dwBytesTransferred; HANDLE hEvent; } RTWQASYNCRESULT; typedef void (WINAPI *RTWQPERIODICCALLBACK)(IUnknown *context); HRESULT WINAPI RtwqAddPeriodicCallback(RTWQPERIODICCALLBACK callback, IUnknown *context, DWORD *key); HRESULT WINAPI RtwqAllocateSerialWorkQueue(DWORD target_queue, DWORD *queue); HRESULT WINAPI RtwqAllocateWorkQueue(RTWQ_WORKQUEUE_TYPE queue_type, DWORD *queue); HRESULT WINAPI RtwqBeginRegisterWorkQueueWithMMCSS(DWORD queue, const WCHAR *mmcss_class, DWORD taskid, LONG priority, IRtwqAsyncCallback *callback, IUnknown *state); HRESULT WINAPI RtwqBeginUnregisterWorkQueueWithMMCSS(DWORD queue, IRtwqAsyncCallback *callback, IUnknown *state); HRESULT WINAPI RtwqCancelDeadline(HANDLE request); HRESULT WINAPI RtwqCancelWorkItem(RTWQWORKITEM_KEY key); HRESULT WINAPI RtwqCreateAsyncResult(IUnknown *object, IRtwqAsyncCallback *callback, IUnknown *state, IRtwqAsyncResult **result); HRESULT WINAPI RtwqEndRegisterWorkQueueWithMMCSS(IRtwqAsyncResult *result, DWORD *taskid); HRESULT WINAPI RtwqGetWorkQueueMMCSSClass(DWORD queue, WCHAR *mmcss_class, DWORD *length); HRESULT WINAPI RtwqGetWorkQueueMMCSSPriority(DWORD queue, LONG *priority); HRESULT WINAPI RtwqGetWorkQueueMMCSSTaskId(DWORD queue, DWORD *taskid); HRESULT WINAPI RtwqInvokeCallback(IRtwqAsyncResult *result); HRESULT WINAPI RtwqJoinWorkQueue(DWORD queue, HANDLE hFile, HANDLE *cookie); HRESULT WINAPI RtwqLockPlatform(void); HRESULT WINAPI RtwqLockSharedWorkQueue(const WCHAR *usageclass, LONG priority, DWORD *taskid, DWORD *queue); HRESULT WINAPI RtwqLockWorkQueue(DWORD queue); HRESULT WINAPI RtwqPutWaitingWorkItem(HANDLE event, LONG priority, IRtwqAsyncResult *result, RTWQWORKITEM_KEY *key); HRESULT WINAPI RtwqPutWorkItem(DWORD queue, LONG priority, IRtwqAsyncResult *result); HRESULT WINAPI RtwqRegisterPlatformEvents(IRtwqPlatformEvents *events); HRESULT WINAPI RtwqRegisterPlatformWithMMCSS(const WCHAR *mmcss_class, DWORD *taskid, LONG priority); HRESULT WINAPI RtwqRemovePeriodicCallback(DWORD key); HRESULT WINAPI RtwqScheduleWorkItem(IRtwqAsyncResult *result, INT64 timeout, RTWQWORKITEM_KEY *key); HRESULT WINAPI RtwqSetDeadline(DWORD queue_id, LONGLONG deadline, HANDLE *request); HRESULT WINAPI RtwqSetDeadline2(DWORD queue_id, LONGLONG deadline, LONGLONG predeadline, HANDLE *request); HRESULT WINAPI RtwqSetLongRunning(DWORD queue_id, WINBOOL enable); HRESULT WINAPI RtwqShutdown(void); HRESULT WINAPI RtwqStartup(void); HRESULT WINAPI RtwqUnjoinWorkQueue(DWORD queue, HANDLE cookie); HRESULT WINAPI RtwqUnlockPlatform(void); HRESULT WINAPI RtwqUnlockWorkQueue(DWORD queue); HRESULT WINAPI RtwqUnregisterPlatformEvents(IRtwqPlatformEvents *events); HRESULT WINAPI RtwqUnregisterPlatformFromMMCSS(void); /* Begin additional prototypes for all interfaces */ /* End additional prototypes */ #ifdef __cplusplus } #endif #endif /* __rtworkq_h__ */