diff --git a/dlls/wintrust/tests/softpub.c b/dlls/wintrust/tests/softpub.c index 5a150e684db..25d458faad7 100644 --- a/dlls/wintrust/tests/softpub.c +++ b/dlls/wintrust/tests/softpub.c @@ -845,7 +845,9 @@ static void test_wintrust(void) file.pcwszFilePath = pathW; /* Test with an empty file */ file.hFile = create_temp_file(pathW); + SetLastError(0xdeadbeef); r = WinVerifyTrust(INVALID_HANDLE_VALUE, &generic_action_v2, &wtd); + ok(r == GetLastError(), "expected %08x, got %08x\n", GetLastError(), r); ok(r == TRUST_E_SUBJECT_FORM_UNKNOWN, "expected TRUST_E_SUBJECT_FORM_UNKNOWN, got %08x\n", r); CloseHandle(file.hFile); @@ -853,18 +855,26 @@ static void test_wintrust(void) file.hFile = NULL; /* Test with a known file path, which we expect not have a signature */ getNotepadPath(pathW, MAX_PATH); + SetLastError(0xdeadbeef); r = WinVerifyTrust(INVALID_HANDLE_VALUE, &generic_action_v2, &wtd); + ok(r == GetLastError(), "expected %08x, got %08x\n", GetLastError(), r); ok(r == TRUST_E_NOSIGNATURE || r == CRYPT_E_FILE_ERROR, "expected TRUST_E_NOSIGNATURE or CRYPT_E_FILE_ERROR, got %08x\n", r); wtd.dwStateAction = WTD_STATEACTION_CLOSE; + SetLastError(0xdeadbeef); r = WinVerifyTrust(INVALID_HANDLE_VALUE, &generic_action_v2, &wtd); + ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %08x\n", GetLastError()); ok(r == S_OK, "WinVerifyTrust failed: %08x\n", r); wtd.dwStateAction = WTD_STATEACTION_VERIFY; + SetLastError(0xdeadbeef); hr = WinVerifyTrustEx(INVALID_HANDLE_VALUE, &generic_action_v2, &wtd); + ok(hr == GetLastError(), "expected %08x, got %08x\n", GetLastError(), hr); ok(hr == TRUST_E_NOSIGNATURE || hr == CRYPT_E_FILE_ERROR, "expected TRUST_E_NOSIGNATURE or CRYPT_E_FILE_ERROR, got %08x\n", hr); wtd.dwStateAction = WTD_STATEACTION_CLOSE; + SetLastError(0xdeadbeef); r = WinVerifyTrust(INVALID_HANDLE_VALUE, &generic_action_v2, &wtd); + ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %08x\n", GetLastError()); ok(r == S_OK, "WinVerifyTrust failed: %08x\n", r); } diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c index a0b8a137ed7..768522ea4a0 100644 --- a/dlls/wintrust/wintrust_main.c +++ b/dlls/wintrust/wintrust_main.c @@ -732,6 +732,7 @@ LONG WINAPI WinVerifyTrust( HWND hwnd, GUID *ActionID, LPVOID ActionData ) } } + if (err) SetLastError(err); TRACE("returning %08x\n", err); return err; }