windows.media.speech: Return E_ILLEGAL_METHOD_CALL from get_ErrorCode.
When async operation status is Closed. Signed-off-by: Rémi Bernon <rbernon@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4a7ebca319
commit
77632af839
|
@ -268,13 +268,18 @@ static HRESULT WINAPI async_operation_info_get_Status( IAsyncInfo *iface, AsyncS
|
|||
static HRESULT WINAPI async_operation_info_get_ErrorCode( IAsyncInfo *iface, HRESULT *error_code )
|
||||
{
|
||||
struct async_operation *impl = impl_from_IAsyncInfo(iface);
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
TRACE("iface %p, error_code %p.\n", iface, error_code);
|
||||
|
||||
EnterCriticalSection(&impl->cs);
|
||||
*error_code = impl->hr;
|
||||
if (impl->status == Closed)
|
||||
*error_code = hr = E_ILLEGAL_METHOD_CALL;
|
||||
else
|
||||
*error_code = impl->hr;
|
||||
LeaveCriticalSection(&impl->cs);
|
||||
|
||||
return S_OK;
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI async_operation_info_Cancel( IAsyncInfo *iface )
|
||||
|
|
|
@ -858,7 +858,7 @@ static void test_SpeechRecognizer(void)
|
|||
AsyncStatus async_status;
|
||||
HSTRING hstr, hstr_lang;
|
||||
HANDLE blocked_thread;
|
||||
HRESULT hr;
|
||||
HRESULT hr, error_code;
|
||||
UINT32 id;
|
||||
LONG ref;
|
||||
|
||||
|
@ -1032,6 +1032,11 @@ static void test_SpeechRecognizer(void)
|
|||
ok(hr == S_OK, "IAsyncInfo_get_Status failed, hr %#lx.\n", hr);
|
||||
ok(async_status == Completed, "Status was %#x.\n", async_status);
|
||||
|
||||
error_code = 0xdeadbeef;
|
||||
hr = IAsyncInfo_get_ErrorCode(info, &error_code);
|
||||
ok(hr == S_OK, "IAsyncInfo_get_ErrorCode failed, hr %#lx.\n", hr);
|
||||
ok(error_code == S_OK, "ErrorCode was %#lx.\n", error_code);
|
||||
|
||||
hr = IAsyncInfo_Cancel(info);
|
||||
ok(hr == S_OK, "IAsyncInfo_Cancel failed, hr %#lx.\n", hr);
|
||||
|
||||
|
@ -1050,6 +1055,11 @@ static void test_SpeechRecognizer(void)
|
|||
ok(hr == E_ILLEGAL_METHOD_CALL, "IAsyncInfo_get_Status failed, hr %#lx.\n", hr);
|
||||
ok(async_status == AsyncStatus_Closed, "Status was %#x.\n", async_status);
|
||||
|
||||
error_code = 0xdeadbeef;
|
||||
hr = IAsyncInfo_get_ErrorCode(info, &error_code);
|
||||
ok(hr == E_ILLEGAL_METHOD_CALL, "IAsyncInfo_get_ErrorCode failed, hr %#lx.\n", hr);
|
||||
ok(error_code == E_ILLEGAL_METHOD_CALL, "ErrorCode was %#lx.\n", error_code);
|
||||
|
||||
ref = IAsyncInfo_Release(info);
|
||||
ok(ref == 1, "Got unexpected ref %lu.\n", ref);
|
||||
|
||||
|
|
Loading…
Reference in New Issue