rtworkq: Add MMCSS-related stubs.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2020-03-31 15:46:38 +03:00 committed by Alexandre Julliard
parent 83af1237a0
commit bb3d06760a
5 changed files with 98 additions and 10 deletions

View File

@ -24,6 +24,7 @@
@ stdcall MFBeginCreateFile(long long long wstr ptr ptr ptr) @ stdcall MFBeginCreateFile(long long long wstr ptr ptr ptr)
@ stub MFBeginGetHostByName @ stub MFBeginGetHostByName
@ stub MFBeginRegisterWorkQueueWithMMCSS @ stub MFBeginRegisterWorkQueueWithMMCSS
@ stdcall MFBeginRegisterWorkQueueWithMMCSSEx(long wstr long long ptr ptr) rtworkq.RtwqBeginRegisterWorkQueueWithMMCSS
@ stub MFBeginUnregisterWorkQueueWithMMCSS @ stub MFBeginUnregisterWorkQueueWithMMCSS
@ stub MFBlockThread @ stub MFBlockThread
@ stub MFCalculateBitmapImageSize @ stub MFCalculateBitmapImageSize
@ -107,8 +108,9 @@
@ stdcall MFGetSystemTime() @ stdcall MFGetSystemTime()
@ stdcall MFGetTimerPeriodicity(ptr) @ stdcall MFGetTimerPeriodicity(ptr)
@ stub MFGetUncompressedVideoFormat @ stub MFGetUncompressedVideoFormat
@ stub MFGetWorkQueueMMCSSClass @ stdcall MFGetWorkQueueMMCSSClass(long ptr ptr) rtworkq.RtwqGetWorkQueueMMCSSClass
@ stub MFGetWorkQueueMMCSSTaskId @ stdcall MFGetWorkQueueMMCSSTaskId(long ptr) rtworkq.RtwqGetWorkQueueMMCSSTaskId
@ stdcall MFGetWorkQueueMMCSSPriority(long ptr) rtworkq.RtwqGetWorkQueueMMCSSPriority
@ stdcall MFHeapAlloc(long long str long long) @ stdcall MFHeapAlloc(long long str long long)
@ stdcall MFHeapFree(ptr) @ stdcall MFHeapFree(ptr)
@ stub MFInitAMMediaTypeFromMFMediaType @ stub MFInitAMMediaTypeFromMFMediaType
@ -135,6 +137,7 @@
@ stub MFRecordError @ stub MFRecordError
@ stdcall MFRegisterLocalByteStreamHandler(wstr wstr ptr) @ stdcall MFRegisterLocalByteStreamHandler(wstr wstr ptr)
@ stdcall MFRegisterLocalSchemeHandler(wstr ptr) @ stdcall MFRegisterLocalSchemeHandler(wstr ptr)
@ stdcall MFRegisterPlatformWithMMCSS(wstr ptr long) rtworkq.RtwqRegisterPlatformWithMMCSS
@ stdcall MFRemovePeriodicCallback(long) rtworkq.RtwqRemovePeriodicCallback @ stdcall MFRemovePeriodicCallback(long) rtworkq.RtwqRemovePeriodicCallback
@ stdcall MFScheduleWorkItem(ptr ptr int64 ptr) @ stdcall MFScheduleWorkItem(ptr ptr int64 ptr)
@ stdcall MFScheduleWorkItemEx(ptr int64 ptr) rtworkq.RtwqScheduleWorkItem @ stdcall MFScheduleWorkItemEx(ptr int64 ptr) rtworkq.RtwqScheduleWorkItem
@ -156,6 +159,7 @@
@ stdcall MFTUnregister(int128) @ stdcall MFTUnregister(int128)
@ stdcall MFTUnregisterLocal(ptr) @ stdcall MFTUnregisterLocal(ptr)
@ stdcall MFTUnregisterLocalByCLSID(int128) @ stdcall MFTUnregisterLocalByCLSID(int128)
@ stdcall MFUnregisterPlatformFromMMCSS() rtworkq.RtwqUnregisterPlatformFromMMCSS
@ stub MFTraceError @ stub MFTraceError
@ stub MFTraceFuncEnter @ stub MFTraceFuncEnter
@ stub MFUnblockThread @ stub MFUnblockThread

View File

@ -1485,3 +1485,60 @@ HRESULT WINAPI RtwqUnjoinWorkQueue(DWORD queue, HANDLE cookie)
return E_NOTIMPL; return E_NOTIMPL;
} }
HRESULT WINAPI RtwqGetWorkQueueMMCSSClass(DWORD queue, WCHAR *class, DWORD *length)
{
FIXME("%#x, %p, %p.\n", queue, class, length);
return E_NOTIMPL;
}
HRESULT WINAPI RtwqGetWorkQueueMMCSSTaskId(DWORD queue, DWORD *taskid)
{
FIXME("%#x, %p.\n", queue, taskid);
return E_NOTIMPL;
}
HRESULT WINAPI RtwqGetWorkQueueMMCSSPriority(DWORD queue, LONG *priority)
{
FIXME("%#x, %p.\n", queue, priority);
return E_NOTIMPL;
}
HRESULT WINAPI RtwqRegisterPlatformWithMMCSS(const WCHAR *class, DWORD *taskid, LONG priority)
{
FIXME("%s, %p, %d.\n", debugstr_w(class), taskid, priority);
return E_NOTIMPL;
}
HRESULT WINAPI RtwqUnregisterPlatformFromMMCSS(void)
{
FIXME("\n");
return E_NOTIMPL;
}
HRESULT WINAPI RtwqBeginRegisterWorkQueueWithMMCSS(DWORD queue, const WCHAR *class, DWORD taskid, LONG priority,
IRtwqAsyncCallback *callback, IUnknown *state)
{
FIXME("%#x, %s, %u, %d, %p, %p.\n", queue, debugstr_w(class), taskid, priority, callback, state);
return E_NOTIMPL;
}
HRESULT WINAPI RtwqRegisterPlatformEvents(IRtwqPlatformEvents *events)
{
FIXME("%p.\n", events);
return E_NOTIMPL;
}
HRESULT WINAPI RtwqUnregisterPlatformEvents(IRtwqPlatformEvents *events)
{
FIXME("%p.\n", events);
return E_NOTIMPL;
}

View File

@ -1,7 +1,7 @@
@ stdcall RtwqAddPeriodicCallback(ptr ptr ptr) @ stdcall RtwqAddPeriodicCallback(ptr ptr ptr)
@ stdcall RtwqAllocateSerialWorkQueue(long ptr) @ stdcall RtwqAllocateSerialWorkQueue(long ptr)
@ stdcall RtwqAllocateWorkQueue(long ptr) @ stdcall RtwqAllocateWorkQueue(long ptr)
@ stub RtwqBeginRegisterWorkQueueWithMMCSS @ stdcall RtwqBeginRegisterWorkQueueWithMMCSS(long wstr long long ptr ptr)
@ stub RtwqBeginUnregisterWorkQueueWithMMCSS @ stub RtwqBeginUnregisterWorkQueueWithMMCSS
@ stdcall RtwqCancelDeadline(long) @ stdcall RtwqCancelDeadline(long)
@ stub RtwqCancelMultipleWaitingWorkItem @ stub RtwqCancelMultipleWaitingWorkItem
@ -10,9 +10,9 @@
@ stub RtwqEndRegisterWorkQueueWithMMCSS @ stub RtwqEndRegisterWorkQueueWithMMCSS
@ stub RtwqEndUnregisterWorkQueueWithMMCSS @ stub RtwqEndUnregisterWorkQueueWithMMCSS
@ stub RtwqGetPlatform @ stub RtwqGetPlatform
@ stub RtwqGetWorkQueueMMCSSClass @ stdcall RtwqGetWorkQueueMMCSSClass(long ptr ptr)
@ stub RtwqGetWorkQueueMMCSSPriority @ stdcall RtwqGetWorkQueueMMCSSPriority(long ptr)
@ stub RtwqGetWorkQueueMMCSSTaskId @ stdcall RtwqGetWorkQueueMMCSSTaskId(long ptr)
@ stdcall RtwqInvokeCallback(ptr) @ stdcall RtwqInvokeCallback(ptr)
@ stdcall RtwqJoinWorkQueue(long long ptr) @ stdcall RtwqJoinWorkQueue(long long ptr)
@ stdcall RtwqLockPlatform() @ stdcall RtwqLockPlatform()
@ -21,8 +21,8 @@
@ stub RtwqPutMultipleWaitingWorkItem @ stub RtwqPutMultipleWaitingWorkItem
@ stdcall RtwqPutWaitingWorkItem(long long ptr ptr) @ stdcall RtwqPutWaitingWorkItem(long long ptr ptr)
@ stdcall RtwqPutWorkItem(long long ptr) @ stdcall RtwqPutWorkItem(long long ptr)
@ stub RtwqRegisterPlatformEvents @ stdcall RtwqRegisterPlatformEvents(ptr)
@ stub RtwqRegisterPlatformWithMMCSS @ stdcall RtwqRegisterPlatformWithMMCSS(wstr ptr long)
@ stdcall RtwqRemovePeriodicCallback(long) @ stdcall RtwqRemovePeriodicCallback(long)
@ stdcall RtwqScheduleWorkItem(ptr int64 ptr) @ stdcall RtwqScheduleWorkItem(ptr int64 ptr)
@ stdcall RtwqSetDeadline(long int64 ptr) @ stdcall RtwqSetDeadline(long int64 ptr)
@ -33,5 +33,5 @@
@ stdcall RtwqUnjoinWorkQueue(long long) @ stdcall RtwqUnjoinWorkQueue(long long)
@ stdcall RtwqUnlockPlatform() @ stdcall RtwqUnlockPlatform()
@ stdcall RtwqUnlockWorkQueue(long) @ stdcall RtwqUnlockWorkQueue(long)
@ stub RtwqUnregisterPlatformEvents @ stdcall RtwqUnregisterPlatformEvents(ptr)
@ stub RtwqUnregisterPlatformFromMMCSS @ stdcall RtwqUnregisterPlatformFromMMCSS()

View File

@ -488,6 +488,8 @@ HRESULT WINAPI MFAllocateWorkQueue(DWORD *queue);
HRESULT WINAPI MFAllocateWorkQueueEx(MFASYNC_WORKQUEUE_TYPE queue_type, DWORD *queue); HRESULT WINAPI MFAllocateWorkQueueEx(MFASYNC_WORKQUEUE_TYPE queue_type, DWORD *queue);
HRESULT WINAPI MFBeginCreateFile(MF_FILE_ACCESSMODE access_mode, MF_FILE_OPENMODE open_mode, MF_FILE_FLAGS flags, HRESULT WINAPI MFBeginCreateFile(MF_FILE_ACCESSMODE access_mode, MF_FILE_OPENMODE open_mode, MF_FILE_FLAGS flags,
const WCHAR *path, IMFAsyncCallback *callback, IUnknown *state, IUnknown **cancel_cookie); const WCHAR *path, IMFAsyncCallback *callback, IUnknown *state, IUnknown **cancel_cookie);
HRESULT WINAPI MFBeginRegisterWorkQueueWithMMCSSEx(DWORD queue, const WCHAR *usage_class, DWORD taskid, LONG priority,
IMFAsyncCallback *callback, IUnknown *state);
HRESULT WINAPI MFCalculateImageSize(REFGUID subtype, UINT32 width, UINT32 height, UINT32 *size); HRESULT WINAPI MFCalculateImageSize(REFGUID subtype, UINT32 width, UINT32 height, UINT32 *size);
HRESULT WINAPI MFCancelCreateFile(IUnknown *cancel_cookie); HRESULT WINAPI MFCancelCreateFile(IUnknown *cancel_cookie);
HRESULT WINAPI MFCancelWorkItem(MFWORKITEM_KEY key); HRESULT WINAPI MFCancelWorkItem(MFWORKITEM_KEY key);
@ -518,6 +520,9 @@ HRESULT WINAPI MFGetAttributesAsBlobSize(IMFAttributes *attributes, UINT32 *size
HRESULT WINAPI MFGetStrideForBitmapInfoHeader(DWORD format, DWORD width, LONG *stride); HRESULT WINAPI MFGetStrideForBitmapInfoHeader(DWORD format, DWORD width, LONG *stride);
HRESULT WINAPI MFGetPlaneSize(DWORD format, DWORD width, DWORD height, DWORD *size); HRESULT WINAPI MFGetPlaneSize(DWORD format, DWORD width, DWORD height, DWORD *size);
HRESULT WINAPI MFGetTimerPeriodicity(DWORD *periodicity); HRESULT WINAPI MFGetTimerPeriodicity(DWORD *periodicity);
HRESULT WINAPI MFGetWorkQueueMMCSSClass(DWORD queue, WCHAR *class, DWORD *length);
HRESULT WINAPI MFGetWorkQueueMMCSSPriority(DWORD queue, LONG *priority);
HRESULT WINAPI MFGetWorkQueueMMCSSTaskId(DWORD queue, DWORD *taskid);
HRESULT WINAPI MFTEnum(GUID category, UINT32 flags, MFT_REGISTER_TYPE_INFO *input_type, HRESULT WINAPI MFTEnum(GUID category, UINT32 flags, MFT_REGISTER_TYPE_INFO *input_type,
MFT_REGISTER_TYPE_INFO *output_type, IMFAttributes *attributes, MFT_REGISTER_TYPE_INFO *output_type, IMFAttributes *attributes,
CLSID **pclsids, UINT32 *pcount); CLSID **pclsids, UINT32 *pcount);
@ -535,6 +540,7 @@ HRESULT WINAPI MFPutWorkItemEx(DWORD queue, IMFAsyncResult *result);
HRESULT WINAPI MFPutWorkItemEx2(DWORD queue, LONG priority, IMFAsyncResult *result); HRESULT WINAPI MFPutWorkItemEx2(DWORD queue, LONG priority, IMFAsyncResult *result);
HRESULT WINAPI MFRegisterLocalByteStreamHandler(const WCHAR *extension, const WCHAR *mime, IMFActivate *activate); HRESULT WINAPI MFRegisterLocalByteStreamHandler(const WCHAR *extension, const WCHAR *mime, IMFActivate *activate);
HRESULT WINAPI MFRegisterLocalSchemeHandler(const WCHAR *scheme, IMFActivate *activate); HRESULT WINAPI MFRegisterLocalSchemeHandler(const WCHAR *scheme, IMFActivate *activate);
HRESULT WINAPI MFRegisterPlatformWithMMCSS(const WCHAR *usage_class, DWORD *taskid, LONG priority);
HRESULT WINAPI MFScheduleWorkItem(IMFAsyncCallback *callback, IUnknown *state, INT64 timeout, MFWORKITEM_KEY *key); HRESULT WINAPI MFScheduleWorkItem(IMFAsyncCallback *callback, IUnknown *state, INT64 timeout, MFWORKITEM_KEY *key);
HRESULT WINAPI MFScheduleWorkItemEx(IMFAsyncResult *result, INT64 timeout, MFWORKITEM_KEY *key); HRESULT WINAPI MFScheduleWorkItemEx(IMFAsyncResult *result, INT64 timeout, MFWORKITEM_KEY *key);
HRESULT WINAPI MFTRegister(CLSID clsid, GUID category, LPWSTR name, UINT32 flags, UINT32 cinput, HRESULT WINAPI MFTRegister(CLSID clsid, GUID category, LPWSTR name, UINT32 flags, UINT32 cinput,
@ -551,6 +557,7 @@ HRESULT WINAPI MFShutdown(void);
HRESULT WINAPI MFStartup(ULONG version, DWORD flags); HRESULT WINAPI MFStartup(ULONG version, DWORD flags);
HRESULT WINAPI MFUnlockPlatform(void); HRESULT WINAPI MFUnlockPlatform(void);
HRESULT WINAPI MFUnlockWorkQueue(DWORD queue); HRESULT WINAPI MFUnlockWorkQueue(DWORD queue);
HRESULT WINAPI MFUnregisterPlatformFromMMCSS(void);
HRESULT WINAPI MFTUnregister(CLSID clsid); HRESULT WINAPI MFTUnregister(CLSID clsid);
HRESULT WINAPI MFTUnregisterLocal(IClassFactory *factory); HRESULT WINAPI MFTUnregisterLocal(IClassFactory *factory);
HRESULT WINAPI MFTUnregisterLocalByCLSID(CLSID clsid); HRESULT WINAPI MFTUnregisterLocalByCLSID(CLSID clsid);

View File

@ -52,6 +52,18 @@ interface IRtwqAsyncCallback : IUnknown
HRESULT Invoke([in] IRtwqAsyncResult *result); HRESULT Invoke([in] IRtwqAsyncResult *result);
} }
[
object,
uuid(63d9255a-7ff1-4b61-8faf-ed6460dacf2b),
local
]
interface IRtwqPlatformEvents : IUnknown
{
HRESULT InitializationComplete(void);
HRESULT ShutdownStart(void);
HRESULT ShutdownComplete(void);
}
cpp_quote("#define RTWQ_E_ERROR(x) ((HRESULT)(0xc00d0000L+x))") cpp_quote("#define RTWQ_E_ERROR(x) ((HRESULT)(0xc00d0000L+x))")
cpp_quote("#define RTWQ_E_BUFFERTOOSMALL RTWQ_E_ERROR(14001)") cpp_quote("#define RTWQ_E_BUFFERTOOSMALL RTWQ_E_ERROR(14001)")
cpp_quote("#define RTWQ_E_NOT_INITIALIZED RTWQ_E_ERROR(14006)") cpp_quote("#define RTWQ_E_NOT_INITIALIZED RTWQ_E_ERROR(14006)")
@ -80,9 +92,13 @@ cpp_quote("typedef void (WINAPI *RTWQPERIODICCALLBACK)(IUnknown *context);")
cpp_quote("HRESULT WINAPI RtwqAddPeriodicCallback(RTWQPERIODICCALLBACK callback, IUnknown *context, DWORD *key);") cpp_quote("HRESULT WINAPI RtwqAddPeriodicCallback(RTWQPERIODICCALLBACK callback, IUnknown *context, DWORD *key);")
cpp_quote("HRESULT WINAPI RtwqAllocateSerialWorkQueue(DWORD target_queue, DWORD *queue);") cpp_quote("HRESULT WINAPI RtwqAllocateSerialWorkQueue(DWORD target_queue, DWORD *queue);")
cpp_quote("HRESULT WINAPI RtwqAllocateWorkQueue(RTWQ_WORKQUEUE_TYPE queue_type, DWORD *queue);") cpp_quote("HRESULT WINAPI RtwqAllocateWorkQueue(RTWQ_WORKQUEUE_TYPE queue_type, DWORD *queue);")
cpp_quote("HRESULT WINAPI RtwqBeginRegisterWorkQueueWithMMCSS(DWORD queue, const WCHAR *class, DWORD taskid, LONG priority, IRtwqAsyncCallback *callback, IUnknown *state);")
cpp_quote("HRESULT WINAPI RtwqCancelDeadline(HANDLE request);") cpp_quote("HRESULT WINAPI RtwqCancelDeadline(HANDLE request);")
cpp_quote("HRESULT WINAPI RtwqCancelWorkItem(RTWQWORKITEM_KEY key);") cpp_quote("HRESULT WINAPI RtwqCancelWorkItem(RTWQWORKITEM_KEY key);")
cpp_quote("HRESULT WINAPI RtwqCreateAsyncResult(IUnknown *object, IRtwqAsyncCallback *callback, IUnknown *state, IRtwqAsyncResult **result);") cpp_quote("HRESULT WINAPI RtwqCreateAsyncResult(IUnknown *object, IRtwqAsyncCallback *callback, IUnknown *state, IRtwqAsyncResult **result);")
cpp_quote("HRESULT WINAPI RtwqGetWorkQueueMMCSSClass(DWORD queue, WCHAR *class, DWORD *length);")
cpp_quote("HRESULT WINAPI RtwqGetWorkQueueMMCSSPriority(DWORD queue, LONG *priority);")
cpp_quote("HRESULT WINAPI RtwqGetWorkQueueMMCSSTaskId(DWORD queue, DWORD *taskid);")
cpp_quote("HRESULT WINAPI RtwqInvokeCallback(IRtwqAsyncResult *result);") cpp_quote("HRESULT WINAPI RtwqInvokeCallback(IRtwqAsyncResult *result);")
cpp_quote("HRESULT WINAPI RtwqJoinWorkQueue(DWORD queue, HANDLE hFile, HANDLE *cookie);") cpp_quote("HRESULT WINAPI RtwqJoinWorkQueue(DWORD queue, HANDLE hFile, HANDLE *cookie);")
cpp_quote("HRESULT WINAPI RtwqLockPlatform(void);") cpp_quote("HRESULT WINAPI RtwqLockPlatform(void);")
@ -90,6 +106,8 @@ cpp_quote("HRESULT WINAPI RtwqLockSharedWorkQueue(const WCHAR *usageclass, LONG
cpp_quote("HRESULT WINAPI RtwqLockWorkQueue(DWORD queue);") cpp_quote("HRESULT WINAPI RtwqLockWorkQueue(DWORD queue);")
cpp_quote("HRESULT WINAPI RtwqPutWaitingWorkItem(HANDLE event, LONG priority, IRtwqAsyncResult *result, RTWQWORKITEM_KEY *key);") cpp_quote("HRESULT WINAPI RtwqPutWaitingWorkItem(HANDLE event, LONG priority, IRtwqAsyncResult *result, RTWQWORKITEM_KEY *key);")
cpp_quote("HRESULT WINAPI RtwqPutWorkItem(DWORD queue, LONG priority, IRtwqAsyncResult *result);") cpp_quote("HRESULT WINAPI RtwqPutWorkItem(DWORD queue, LONG priority, IRtwqAsyncResult *result);")
cpp_quote("HRESULT WINAPI RtwqRegisterPlatformEvents(IRtwqPlatformEvents *events);")
cpp_quote("HRESULT WINAPI RtwqRegisterPlatformWithMMCSS(const WCHAR *class, DWORD *taskid, LONG priority);")
cpp_quote("HRESULT WINAPI RtwqRemovePeriodicCallback(DWORD key);") cpp_quote("HRESULT WINAPI RtwqRemovePeriodicCallback(DWORD key);")
cpp_quote("HRESULT WINAPI RtwqScheduleWorkItem(IRtwqAsyncResult *result, INT64 timeout, RTWQWORKITEM_KEY *key);") cpp_quote("HRESULT WINAPI RtwqScheduleWorkItem(IRtwqAsyncResult *result, INT64 timeout, RTWQWORKITEM_KEY *key);")
cpp_quote("HRESULT WINAPI RtwqSetDeadline(DWORD queue_id, LONGLONG deadline, HANDLE *request);") cpp_quote("HRESULT WINAPI RtwqSetDeadline(DWORD queue_id, LONGLONG deadline, HANDLE *request);")
@ -100,3 +118,5 @@ cpp_quote("HRESULT WINAPI RtwqStartup(void);")
cpp_quote("HRESULT WINAPI RtwqUnjoinWorkQueue(DWORD queue, HANDLE cookie);") cpp_quote("HRESULT WINAPI RtwqUnjoinWorkQueue(DWORD queue, HANDLE cookie);")
cpp_quote("HRESULT WINAPI RtwqUnlockPlatform(void);") cpp_quote("HRESULT WINAPI RtwqUnlockPlatform(void);")
cpp_quote("HRESULT WINAPI RtwqUnlockWorkQueue(DWORD queue);") cpp_quote("HRESULT WINAPI RtwqUnlockWorkQueue(DWORD queue);")
cpp_quote("HRESULT WINAPI RtwqUnregisterPlatformEvents(IRtwqPlatformEvents *events);")
cpp_quote("HRESULT WINAPI RtwqUnregisterPlatformFromMMCSS(void);")