Jinoh Kang (@iamahuman) commented about dlls/windows.media.speech/recognizer.c:
static HRESULT WINAPI session_StartAsync( ISpeechContinuousRecognitionSession *iface, IAsyncAction **action ) {
- FIXME("iface %p, action %p stub!\n", iface, action);
- return async_action_create(NULL, start_callback, action);
- struct session *impl = impl_from_ISpeechContinuousRecognitionSession(iface);
- HRESULT hr = S_OK;
- TRACE("iface %p, action %p.\n", iface, action);
- hr = async_action_create(NULL, session_start_async, action);
- EnterCriticalSection(&impl->cs);
- if (!impl->worker_running && !impl->worker_thread && SUCCEEDED(hr))
impl->worker_running = TRUE;
- else
hr = COR_E_INVALIDOPERATION;
You're overwriting failure HRESULT from `async_action_create` with `COR_E_INVALIDOPERATION`.