Rémi Bernon (@rbernon) commented about dlls/windows.media.speech/tests/speech.c:
+ hr = IAsyncInfo_get_Id(async_info, &async_id); + if (expect_status < 4) todo_wine ok_(__FILE__, line)(hr == S_OK, "IAsyncInfo_get_Id returned %#lx\n", hr); + else todo_wine ok_(__FILE__, line)(hr == E_ILLEGAL_METHOD_CALL, "IAsyncInfo_get_Id returned %#lx\n", hr); + todo_wine ok_(__FILE__, line)(async_id == expect_id, "got async_id %#x\n", async_id); + + async_status = 0xdeadbeef; + hr = IAsyncInfo_get_Status(async_info, &async_status); + if (expect_status < 4) ok_(__FILE__, line)(hr == S_OK, "IAsyncInfo_get_Status returned %#lx\n", hr); + else ok_(__FILE__, line)(hr == E_ILLEGAL_METHOD_CALL, "IAsyncInfo_get_Status returned %#lx\n", hr); + ok_(__FILE__, line)(async_status == expect_status, "got async_status %#x\n", async_status); + + async_hr = 0xdeadbeef; + hr = IAsyncInfo_get_ErrorCode(async_info, &async_hr); + if (expect_status < 4) ok_(__FILE__, line)(hr == S_OK, "IAsyncInfo_get_ErrorCode returned %#lx\n", hr); + else ok_(__FILE__, line)(hr == E_ILLEGAL_METHOD_CALL, "IAsyncInfo_get_ErrorCode returned %#lx\n", hr); + if (expect_status < 4) todo_wine_if(FAILED(expect_hr)) ok_(__FILE__, line)(async_hr == expect_hr, "got async_hr %#lx\n", async_hr); The todo_wine_if here doesn't seem required, it was useful for dinput tests where we don't return the same error codes as native.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/96#note_1014