diff --git a/dlls/wshom.ocx/shell.c b/dlls/wshom.ocx/shell.c index dd21e03b898..c538a6b4a74 100644 --- a/dlls/wshom.ocx/shell.c +++ b/dlls/wshom.ocx/shell.c @@ -1374,7 +1374,8 @@ static HRESULT WINAPI WshShell3_Run(IWshShell3 *iface, BSTR cmd, VARIANT *style, memset(&info, 0, sizeof(info)); info.cbSize = sizeof(info); - info.fMask = waitforprocess ? SEE_MASK_NOASYNC | SEE_MASK_NOCLOSEPROCESS : SEE_MASK_DEFAULT; + info.fMask = SEE_MASK_FLAG_NO_UI; + info.fMask |= waitforprocess ? SEE_MASK_NOASYNC | SEE_MASK_NOCLOSEPROCESS : SEE_MASK_DEFAULT; info.lpFile = file; info.lpParameters = params; info.nShow = show; @@ -1384,7 +1385,7 @@ static HRESULT WINAPI WshShell3_Run(IWshShell3 *iface, BSTR cmd, VARIANT *style, if (!ret) { TRACE("ShellExecute failed, %ld\n", GetLastError()); - return HRESULT_FROM_WIN32(GetLastError()); + *exit_code = GetLastError(); } else { @@ -1399,8 +1400,8 @@ static HRESULT WINAPI WshShell3_Run(IWshShell3 *iface, BSTR cmd, VARIANT *style, else *exit_code = 0; - return S_OK; } + return S_OK; } struct popup_thread_param diff --git a/dlls/wshom.ocx/tests/wshom.c b/dlls/wshom.ocx/tests/wshom.c index 58736ff601f..15c00b2e489 100644 --- a/dlls/wshom.ocx/tests/wshom.c +++ b/dlls/wshom.ocx/tests/wshom.c @@ -284,7 +284,7 @@ static void test_wshshell(void) str = SysAllocString(L"\"cmd.exe \" /c rd /s /q c:\\nosuchdir"); hr = IWshShell3_Run(sh3, str, &arg, &arg2, &retval); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - todo_wine ok(retval == ERROR_FILE_NOT_FOUND, "Unexpected retval %d.\n", retval); + ok(retval == ERROR_FILE_NOT_FOUND, "Unexpected retval %d.\n", retval); SysFreeString(str); GetSystemDirectoryW(path, ARRAY_SIZE(path));