Module: wine Branch: master Commit: 47e4907c0d3b53e482cea79df90ec72eafad8c37 URL: https://gitlab.winehq.org/wine/wine/-/commit/47e4907c0d3b53e482cea79df90ec72...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Mar 26 22:24:09 2024 +0100
wshom.ocx: Don't show a message box on ShellExecute error.
---
dlls/wshom.ocx/shell.c | 7 ++++--- dlls/wshom.ocx/tests/wshom.c | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-)
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));