windows.media.speech: Return operation error from IAsyncOperation_GetResults.
And E_ILLEGAL_METHOD_CALL if called when status isn't Completed or Error. Signed-off-by: Rémi Bernon <rbernon@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d84fb82950
commit
4a7ebca319
|
@ -201,16 +201,16 @@ static HRESULT WINAPI async_operation_GetResults( IAsyncOperation_IInspectable *
|
|||
TRACE("iface %p, results %p.\n", iface, results);
|
||||
|
||||
EnterCriticalSection(&impl->cs);
|
||||
if (impl->status == Closed)
|
||||
if (impl->status != Completed && impl->status != Error)
|
||||
hr = E_ILLEGAL_METHOD_CALL;
|
||||
else if (impl->status > Started && impl->result)
|
||||
else if (!impl->result)
|
||||
hr = E_UNEXPECTED;
|
||||
else
|
||||
{
|
||||
*results = impl->result;
|
||||
impl->result = NULL; /* NOTE: AsyncOperation gives up it's reference to result here! */
|
||||
hr = S_OK;
|
||||
hr = impl->hr;
|
||||
}
|
||||
else
|
||||
hr = E_UNEXPECTED;
|
||||
LeaveCriticalSection(&impl->cs);
|
||||
|
||||
return hr;
|
||||
|
|
|
@ -988,7 +988,7 @@ static void test_SpeechRecognizer(void)
|
|||
|
||||
compilation_result = (void*)0xdeadbeef;
|
||||
hr = IAsyncOperation_SpeechRecognitionCompilationResult_GetResults(operation, &compilation_result);
|
||||
todo_wine ok(hr == E_ILLEGAL_METHOD_CALL, "Got unexpected hr %#lx.\n", hr);
|
||||
ok(hr == E_ILLEGAL_METHOD_CALL, "Got unexpected hr %#lx.\n", hr);
|
||||
ok(compilation_result == (void*)0xdeadbeef, "Compilation result had value %p.\n", compilation_result);
|
||||
|
||||
hr = IAsyncOperation_SpeechRecognitionCompilationResult_put_Completed(operation, &compilation_handler.IAsyncHandler_Compilation_iface);
|
||||
|
|
Loading…
Reference in New Issue