Commit Graph

182 Commits

Author SHA1 Message Date
Damjan Jovanovic 9736fe499d shell32: Pass the executable's full path from SHELL_execute() to CreateProcess().
Several older Microsoft installers, particularly those changing CDs
during installation, break because they launch a child setup.exe, from
a parent process also called setup.exe, which Wine finds in the wrong
directory, as CreateProcess() first searches the parent executable's
own directory, thus re-launching the parent itself instead of the
child.  Therefore CreateProcess() must be passed a full path from
SHELL_execute(), so it launches the correct child.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=8439
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 11:35:46 +01:00
Damjan Jovanovic 06f1f53c4c shell32: Simplify SHELL_execute().
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 11:35:43 +01:00
Francois Gouget 76bc23d8c6 shell32: Avoid an unneeded strlenW() call.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-10 15:51:27 +01:00
Michael Stefaniuc 640fe968cc shell32: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-15 23:12:57 +01:00
Alistair Leslie-Hughes cce8398dea shell32: Properly fail when a data object cannot be created.
Based on a patch by Mark Jansen.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-16 14:04:24 +02:00
Mark Jansen f7d47b4951 shell32: Expand environment strings in ShellExecute.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-16 14:04:22 +02:00
Marcus Meissner aba4789b0e shell32: Set size in characters in MENUITEMINFOW struct.
Signed-off-by: Marcus Meissner <meissner@suse.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-03 11:12:43 +02:00
Michael Stefaniuc 250e8437d7 shell32: Use the available ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 17:27:41 +02:00
Nikolay Sivov 612a194133 shell32: Use ARRAY_SIZE macro.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-19 12:35:12 +01:00
Nikolay Sivov e3b200bd8a shell32: Use global memory allocation helpers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 14:16:33 +01:00
Alex Henrie 67826491a6 shell32: Implement ShellExec_RunDLL.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-27 09:29:54 +02:00
Akihiro Sagawa 255fd46eeb shell32: Avoid using isspace() for WCHARs.
Found with Coccinelle.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-17 16:11:19 +02:00
André Hentschel 1c98bc14c9 shell32: Remove dead assignments (clang).
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-31 08:52:59 +01:00
André Hentschel 1010372778 shell32: Provide helper function a buffer of correct size.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 22:31:01 +09:00
André Hentschel 2cff59ed5c shell32: Minor cleanup of SHELL_execute (Clang).
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-22 20:18:56 +01:00
Sebastian Lackner 7d3f13a129 shell32: Ensure that commandline is null-terminated when no parameters are given. 2015-07-17 14:28:17 +09:00
Piotr Caban 943ead5022 shell32: Fix SHELL_execute code that removes quote arround file name. 2015-07-16 16:29:12 +09:00
Piotr Caban 663f9f4b21 shell32: Handle executable with space in path in SHELL_execute. 2015-07-16 16:29:09 +09:00
Piotr Caban 8e853a3e90 shell32: Remove code for separating arguments from file path. 2015-07-16 16:29:06 +09:00
Austin English 66662a87c0 shell32: Add a stub for RegenerateUserEnvironment. 2014-11-12 20:07:55 +09:00
Vincent Povirk 2005be6dc9 shell32: Use CREATE_NEW_CONSOLE when SEE_MASK_NOCONSOLE is omitted. 2014-04-25 10:22:44 +02:00
Vincent Povirk 33a2242133 shell32: Pass MASK_NO_CONSOLE through to context menu handlers. 2014-04-25 10:22:41 +02:00
Francois Gouget 68c1bf507d shell32: Standardize on the ShellExecuteEx() terminology. 2012-10-18 19:21:10 +02:00
Marcus Meissner 9eb7378765 shell32: Avoid memory leaking buf (Coverity). 2012-10-15 13:31:05 +02:00
Francois Gouget 53e4ddc399 shell32: Fix ShellExecute()'s handling of file URLs. 2012-10-10 10:37:37 +02:00
Francois Gouget 0c989fb078 shell32: Don't expand environment variables in ShellExecute()'s parameters argument. 2012-10-09 10:04:11 +02:00
Francois Gouget 5f55a71b70 Assorted spelling fixes. 2012-09-24 22:27:29 +02:00
Marcus Meissner 006ee88278 shell32: Use characters not bytes in one place (Coverity). 2012-09-03 15:49:49 +02:00
Erich Hoover 6a1d2f80b8 shell32: Fix FindExecutable search path when a default directory is supplied. 2012-07-12 16:10:04 -05:00
Andrew Eikum 3f3e42b6bc shell32: ShellExec with empty operation should behave same as with NULL operation. 2011-10-19 16:38:51 +02:00
Juan Lang 0aad594d5f shell32: Use existing buffer rather than copying, and potentially truncating, a filename prior to executing it. 2011-10-17 17:45:07 +02:00
Juan Lang 726acf0f4a shell32: Check size of input parameters before copying to fixed length buffers. 2011-10-17 17:45:06 +02:00
Vincent Povirk 9b2968dc77 shell32: Dynamically allocate argify buffer if the static one is too small. 2011-07-20 19:23:04 +02:00
Vincent Povirk eeeca57072 shell32: Include NULL terminators in the lengths used by SHELL_ArgifyW. 2011-07-20 19:23:04 +02:00
Mikhail Maroukhine cc7eaa3293 shell32: Fix compiler warnings with flag -Wcast-qual. 2010-03-29 12:16:36 +02:00
Ilya Basin 9ff19d1d48 shell32: Enable dde for SEE_MASK_CLASSALL. 2010-03-25 16:36:41 +01:00
Paul Vriens 3cbaaaa564 shell32: Remove some unneeded parameter setting. 2010-01-14 09:14:19 -06:00
Stefan Dösinger 29d72a53ab shell32: Make some functions hookable. 2009-10-14 12:21:06 +02:00
Francois Gouget aad81e5cea shell32: Make AboutDlgProc() and SHELL_execute() static. 2009-05-15 10:31:43 +02:00
Alexandre Julliard 129ba5ade0 shell32: Make shell.dll into a stand-alone 16-bit module. 2009-04-01 18:20:13 +02:00
Alexandre Julliard b1d96f6ffa shell32: Add implementation of WOWShellExecute.
The callback is probably not fully compatible, but apps are not
supposed to use that function anyway.
2009-04-01 18:19:42 +02:00
Vincent Povirk 8e4aff7a4d shell32: Add a message for opening files with no association. 2009-02-26 12:11:57 +01:00
Marcus Meissner 0aa5a83688 shell32: Fixed potential buffer overwrite in execute_from_key (Coverity). 2009-02-02 15:21:43 +01:00
Vincent Povirk 5c24f70c8b shell32: Display error messages in ShellExecuteEx. 2008-12-19 17:41:15 +01:00
Vincent Povirk 0a2ffa08f5 shell32: Use the NO_UI flag in ShellExecute.
In my testing on Windows, I wasn't able to make ShellExecute display
any error dialogs.
2008-12-19 17:41:11 +01:00
Paul Chitescu cd616409ba shell32.dll: Return SE_ERR_FNF if file not found before checking for associations. 2008-12-09 10:25:38 +01:00
Alexandre Julliard 1abff5afef shell32: Make some functions static. 2008-12-03 12:09:38 +01:00
Andrew Talbot 45d7897c62 shell32: Sign-compare warnings fix. 2008-11-12 11:49:12 +01:00
Marcus Meissner 0ff2c06c1d Fixed RegEnumKey(Ex)W buffer sizes. 2008-10-13 12:04:26 +02:00
Rob Shearman 3261814e08 shell32: Don't assign a result from a function that returns a BOOL to an HRESULT in shellex_get_dataobj.
Otherwise there could be confusion as to what type GetFullPathNameW is
returning.
2008-08-18 17:34:12 +02:00