mfplat: Implement MFInvokeCallback().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
0f0d4b1477
commit
b4c5dd49a3
|
@ -116,12 +116,12 @@
|
||||||
@ stub MFInitMediaTypeFromWaveFormatEx
|
@ stub MFInitMediaTypeFromWaveFormatEx
|
||||||
@ stub MFInitVideoFormat
|
@ stub MFInitVideoFormat
|
||||||
@ stub MFInitVideoFormat_RGB
|
@ stub MFInitVideoFormat_RGB
|
||||||
@ stub MFInvokeCallback
|
@ stdcall MFInvokeCallback(ptr)
|
||||||
@ stub MFJoinIoPort
|
@ stub MFJoinIoPort
|
||||||
@ stdcall MFLockPlatform()
|
@ stdcall MFLockPlatform()
|
||||||
@ stdcall MFLockWorkQueue(long)
|
@ stdcall MFLockWorkQueue(long)
|
||||||
@ stub MFPutWorkItem
|
@ stdcall MFPutWorkItem(long ptr ptr)
|
||||||
@ stub MFPutWorkItemEx
|
@ stdcall MFPutWorkItemEx(long ptr)
|
||||||
@ stub MFRecordError
|
@ stub MFRecordError
|
||||||
@ stub MFRemovePeriodicCallback
|
@ stub MFRemovePeriodicCallback
|
||||||
@ stub MFScheduleWorkItem
|
@ stub MFScheduleWorkItem
|
||||||
|
|
|
@ -331,3 +331,57 @@ HRESULT WINAPI MFUnlockWorkQueue(DWORD queue)
|
||||||
|
|
||||||
return unlock_user_queue(queue);
|
return unlock_user_queue(queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* MFPutWorkItem (mfplat.@)
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI MFPutWorkItem(DWORD queue, IMFAsyncCallback *callback, IUnknown *state)
|
||||||
|
{
|
||||||
|
IMFAsyncResult *result;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
TRACE("%#x, %p, %p.\n", queue, callback, state);
|
||||||
|
|
||||||
|
if (FAILED(hr = MFCreateAsyncResult(NULL, callback, state, &result)))
|
||||||
|
return hr;
|
||||||
|
|
||||||
|
hr = MFPutWorkItemEx(queue, result);
|
||||||
|
|
||||||
|
IMFAsyncResult_Release(result);
|
||||||
|
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* MFPutWorkItemEx (mfplat.@)
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI MFPutWorkItemEx(DWORD queue, IMFAsyncResult *result)
|
||||||
|
{
|
||||||
|
FIXME("%#x, %p\n", queue, result);
|
||||||
|
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* MFInvokeCallback (mfplat.@)
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI MFInvokeCallback(IMFAsyncResult *result)
|
||||||
|
{
|
||||||
|
MFASYNCRESULT *result_data = (MFASYNCRESULT *)result;
|
||||||
|
DWORD queue = MFASYNC_CALLBACK_QUEUE_STANDARD, flags;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
TRACE("%p.\n", result);
|
||||||
|
|
||||||
|
if (FAILED(IMFAsyncCallback_GetParameters(result_data->pCallback, &flags, &queue)))
|
||||||
|
queue = MFASYNC_CALLBACK_QUEUE_STANDARD;
|
||||||
|
|
||||||
|
if (FAILED(MFLockWorkQueue(queue)))
|
||||||
|
queue = MFASYNC_CALLBACK_QUEUE_STANDARD;
|
||||||
|
|
||||||
|
hr = MFPutWorkItemEx(queue, result);
|
||||||
|
|
||||||
|
MFUnlockWorkQueue(queue);
|
||||||
|
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
|
@ -102,6 +102,8 @@ HRESULT WINAPI MFTEnumEx(GUID category, UINT32 flags, const MFT_REGISTER_TYPE_IN
|
||||||
UINT32 *pcount);
|
UINT32 *pcount);
|
||||||
HRESULT WINAPI MFInvokeCallback(IMFAsyncResult *result);
|
HRESULT WINAPI MFInvokeCallback(IMFAsyncResult *result);
|
||||||
HRESULT WINAPI MFLockPlatform(void);
|
HRESULT WINAPI MFLockPlatform(void);
|
||||||
|
HRESULT WINAPI MFPutWorkItem(DWORD queue, IMFAsyncCallback *callback, IUnknown *state);
|
||||||
|
HRESULT WINAPI MFPutWorkItemEx(DWORD queue, IMFAsyncResult *result);
|
||||||
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,
|
||||||
MFT_REGISTER_TYPE_INFO *input_types, UINT32 coutput,
|
MFT_REGISTER_TYPE_INFO *input_types, UINT32 coutput,
|
||||||
MFT_REGISTER_TYPE_INFO *output_types, IMFAttributes *attributes);
|
MFT_REGISTER_TYPE_INFO *output_types, IMFAttributes *attributes);
|
||||||
|
|
Loading…
Reference in New Issue