diff --git a/dlls/mfplat/mfplat.spec b/dlls/mfplat/mfplat.spec index 31d3777e87b..5311757d2b7 100644 --- a/dlls/mfplat/mfplat.spec +++ b/dlls/mfplat/mfplat.spec @@ -124,6 +124,7 @@ @ stub MFInitVideoFormat_RGB @ stdcall MFInvokeCallback(ptr) @ stub MFJoinIoPort +@ stdcall MFJoinWorkQueue(long long ptr) rtworkq.RtwqJoinWorkQueue @ stdcall MFLockPlatform() rtworkq.RtwqLockPlatform @ stdcall MFLockWorkQueue(long) rtworkq.RtwqLockWorkQueue @ stdcall MFPutWaitingWorkItem(long long ptr ptr) rtworkq.RtwqPutWaitingWorkItem @@ -158,6 +159,7 @@ @ stub MFTraceError @ stub MFTraceFuncEnter @ stub MFUnblockThread +@ stdcall MFUnjoinWorkQueue(long long) rtworkq.RtwqUnjoinWorkQueue @ stdcall MFUnlockPlatform() rtworkq.RtwqUnlockPlatform @ stdcall MFUnlockWorkQueue(long) rtworkq.RtwqUnlockWorkQueue @ stdcall MFUnwrapMediaType(ptr ptr) diff --git a/dlls/rtworkq/queue.c b/dlls/rtworkq/queue.c index 85e84d46d67..32bd75b3469 100644 --- a/dlls/rtworkq/queue.c +++ b/dlls/rtworkq/queue.c @@ -1471,3 +1471,17 @@ HRESULT WINAPI RtwqAllocateSerialWorkQueue(DWORD target_queue, DWORD *queue) desc.target_queue = target_queue; return alloc_user_queue(&desc, queue); } + +HRESULT WINAPI RtwqJoinWorkQueue(DWORD queue, HANDLE hFile, HANDLE *cookie) +{ + FIXME("%#x, %p, %p.\n", queue, hFile, cookie); + + return E_NOTIMPL; +} + +HRESULT WINAPI RtwqUnjoinWorkQueue(DWORD queue, HANDLE cookie) +{ + FIXME("%#x, %p.\n", queue, cookie); + + return E_NOTIMPL; +} diff --git a/dlls/rtworkq/rtworkq.spec b/dlls/rtworkq/rtworkq.spec index adc05d679dc..11955ac1a6a 100644 --- a/dlls/rtworkq/rtworkq.spec +++ b/dlls/rtworkq/rtworkq.spec @@ -14,7 +14,7 @@ @ stub RtwqGetWorkQueueMMCSSPriority @ stub RtwqGetWorkQueueMMCSSTaskId @ stdcall RtwqInvokeCallback(ptr) -@ stub RtwqJoinWorkQueue +@ stdcall RtwqJoinWorkQueue(long long ptr) @ stdcall RtwqLockPlatform() @ stdcall RtwqLockSharedWorkQueue(wstr long ptr ptr) @ stdcall RtwqLockWorkQueue(long) @@ -30,7 +30,7 @@ @ stdcall RtwqSetLongRunning(long long) @ stdcall RtwqShutdown() @ stdcall RtwqStartup() -@ stub RtwqUnjoinWorkQueue +@ stdcall RtwqUnjoinWorkQueue(long long) @ stdcall RtwqUnlockPlatform() @ stdcall RtwqUnlockWorkQueue(long) @ stub RtwqUnregisterPlatformEvents diff --git a/include/rtworkq.idl b/include/rtworkq.idl index 1a452c3edc7..ca6645b862c 100644 --- a/include/rtworkq.idl +++ b/include/rtworkq.idl @@ -84,6 +84,7 @@ cpp_quote("HRESULT WINAPI RtwqCancelDeadline(HANDLE request);") 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 RtwqInvokeCallback(IRtwqAsyncResult *result);") +cpp_quote("HRESULT WINAPI RtwqJoinWorkQueue(DWORD queue, HANDLE hFile, HANDLE *cookie);") cpp_quote("HRESULT WINAPI RtwqLockPlatform(void);") cpp_quote("HRESULT WINAPI RtwqLockSharedWorkQueue(const WCHAR *usageclass, LONG priority, DWORD *taskid, DWORD *queue);") cpp_quote("HRESULT WINAPI RtwqLockWorkQueue(DWORD queue);") @@ -96,5 +97,6 @@ cpp_quote("HRESULT WINAPI RtwqSetDeadline2(DWORD queue_id, LONGLONG deadline, LO cpp_quote("HRESULT WINAPI RtwqSetLongRunning(DWORD queue_id, BOOL enable);") cpp_quote("HRESULT WINAPI RtwqShutdown(void);") cpp_quote("HRESULT WINAPI RtwqStartup(void);") +cpp_quote("HRESULT WINAPI RtwqUnjoinWorkQueue(DWORD queue, HANDLE cookie);") cpp_quote("HRESULT WINAPI RtwqUnlockPlatform(void);") cpp_quote("HRESULT WINAPI RtwqUnlockWorkQueue(DWORD queue);")