Commit Graph

76 Commits

Author SHA1 Message Date
Zebediah Figura 2592690540 msiexec: Don't keep the custom action GUID in the main thread's stack.
Since it could potentially change on us during an asynchronous custom action.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 18:41:14 +02:00
Zebediah Figura 6925846988 msi: Generate unique names for 32- and 64-bit custom action server pipes.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:15:59 +02:00
Michael Stefaniuc effac73e72 msiexec: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 09:43:00 +02:00
Zebediah Figura 457431ab5b msi: Reuse the custom action server process where possible.
We use a named pipe to communicate between the client (i.e. the process that
called MsiInstallProduct() and the custom action server. The naïve approach
has the client send custom action GUIDs to the server and the server send
back the results of executing the action, but this fails in the case of
nested custom actions, so instead we send back handles of threads for the
client to wait on.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-11 15:45:11 +02:00
Zebediah Figura 7908d6ee39 msi: Create the custom action thread inside msiexec.exe.
This patch is effectively a no-op by itself, but makes the next patch
architecturally much simpler. We need the main thread to be non-blocking
to allow nested custom actions to work, so creating the thread inside of
msiexec allows the custom action thread to write the result of the action to
the server pipe while the main thread simply reads from it.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-11 15:45:11 +02:00
Zebediah Figura d0451d5734 msi: Mark exported wine functions CDECL.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-19 20:46:50 +02:00
Zebediah Figura 85d1fb62b3 msi: Execute custom actions in a separate process.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-26 13:27:10 +02:00
Hans Leidekker d73c38fe9a msiexec: Fix parsing of command lines where quoted strings and properties are not separated by whitespace.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-06 13:08:45 +02:00
Hans Leidekker c0b3f3f2e8 msiexec: Add support for /passive.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
2015-10-06 17:21:02 +09:00
Hans Leidekker 171a4c4154 msiexec: Fix parsing of basic UI level modifiers.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
2015-10-06 17:21:02 +09:00
Hans Leidekker d81b8bbd79 msiexec: Add support for /update. 2014-11-27 13:14:19 +01:00
Hans Leidekker f5d916db06 msiexec: Command line option '!' is used to hide the cancel button. 2014-09-01 21:10:11 +02:00
Frédéric Delanoy a24081a703 msiexec: Use BOOL type where appropriate. 2013-11-01 10:52:50 +01:00
Austin English e55aea83cd msiexec: Add a fixme for administrative installs. 2013-09-11 20:33:22 +02:00
Hans Leidekker 0800f29b25 msiexec: Convert DoRegServer to Unicode. 2013-02-12 14:51:38 +01:00
Hans Leidekker 6cd2ffae02 msiexec: Add /unregserver support. 2013-02-12 14:51:35 +01:00
Michael Stefaniuc b791c25274 msiexec: Use FIELD_OFFSET to calculate the size of a struct with variable length array. 2012-11-12 13:16:59 +01:00
Hans Leidekker 3a9d30d485 msiexec: Support the "b!" UI option. 2012-03-12 16:37:22 +01:00
Alexandre Julliard c9eee73450 makefiles: Define __WINESRC__ when building programs. 2012-01-23 16:07:37 +01:00
Hans Leidekker 494e20541d msiexec: Preserve the first argument in process_args_from_reg. 2011-11-03 13:09:07 +01:00
Austin English b827ab329b msiexec: Add /unreg as an alias for /z. 2011-02-14 13:33:34 +01:00
Detlef Riekenberg 2a9b4e0142 msiexec: Use resource in msi for a help dialog to allow translation. 2010-05-06 17:56:44 +02:00
Detlef Riekenberg 5c02e3f8b5 msiexec: Recognize /uninstall as alias for /x [resend]. 2010-04-21 11:57:33 +02:00
Josselin Bardet 2b07ae5e6f msiexec: Support of /package option. 2010-01-04 17:06:52 +01:00
Vincent Povirk 6949694740 msiexec: Build with -mwindows. 2008-11-13 12:04:19 +01:00
Alexandre Julliard 8d7fc61717 msiexec: Fix initial state of the argument parsing state machine. 2008-10-23 12:53:47 +02:00
Alexandre Julliard 01b7667a1a programs: Convert source files to utf-8. 2008-10-18 19:22:19 +02:00
Alexandre Julliard b66685cdd8 programs: Build the programs that support it with -DWINE_NO_UNICODE_MACROS. 2008-09-03 14:21:41 +02:00
Patrick Moran 0b79b0e58a msiexec: Fix atou() return value mistake. 2007-11-26 13:08:03 +01:00
Andrew Talbot 691dc735fd msiexec: Fix a memory leak. 2007-10-16 11:01:37 +02:00
James Hawkins 43bc08ddef msiexec: Implement a stub MSIServer service. 2007-07-31 11:16:15 +02:00
James Hawkins 5b8bad7518 msiexec: /quiet is the same options as /qn. 2007-05-09 12:06:57 +02:00
Aric Stewart 54c7b7e81b Revert 7c35db07c35db0... msiexec: Use CommandLineToArgvW instead of process_args to reduce code duplication.
The previous command line processing is not identical to
CommandLineToArgvW and CommandLineToArgvW breaks msi command line
processing for things such as Excel Viewer 2003.

Specifically the command line created by the Excel Viewer 2003 and
passed to msiexec.exe is "c:\windows\system32\msiexec.exe" /I
C:\windows\temp\IXP000.TMP\XLVIEW.MSI CDCACHE="2"
LAUNCHEDFROMSETUP="1" SETUPEXEPATH="C:\windows\temp\IXP000.TMP\"
SETUPEXENAME="SETUP.EXE" /lpiwaeo "C:\windows\temp\Microsoft Office
Excel Viewer 2003 Setup(0001)_Task(0001).txt" CDCACH"...
2007-03-22 15:54:14 +01:00
Mike McCormack ecefcccabf msiexec: Catch the -Embedding flag and print out a message. 2007-02-08 11:56:25 +01:00
Michael Stefaniuc 41dd56cb7f "One liners" printf format warning fixes for the migration of DWORD/LONG/ULONG from long to int. 2006-09-29 16:09:24 +02:00
Andrey Turkin d456e9f49f msiexec: Should recognize /xpackage syntax. 2006-09-25 18:13:32 +02:00
Alexandre Julliard 8580984346 msiexec: Ignore failure to create the service if it already exists. 2006-09-13 12:56:37 +02:00
James Hawkins a6b8ff9ddb msiexec: Add handling for msiexec's regserver option. 2006-08-23 12:01:15 +02:00
Mike McCormack 2b8abca493 msiexec: Don't crash if there's no args. 2006-07-28 12:32:20 +02:00
Alexandre Julliard 4cf14960ba msiexec: Invert the return values of the boolean functions so that
their names make more sense.
2006-07-14 12:38:20 +02:00
James Hawkins 8c3fc3a889 msiexec: Also support options using a hyphen. 2006-07-14 12:29:36 +02:00
James Hawkins 7c35db000b msiexec: Use CommandLineToArgvW instead of process_args to reduce code duplication. 2006-06-27 21:14:01 +02:00
Mike McCormack e550eab7e5 msiexec: Improve 64bit compatibility. 2006-05-30 12:23:43 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Mike McCormack 16ee9aba88 msiexec: Force using /i file.msi, some programs pass properties without an =. 2006-05-05 16:33:18 +02:00
Mike McCormack 7d66567253 programs: Use WIN32_LEAN_AND_MEAN in some more places. 2006-01-16 20:41:34 +01:00
Mike McCormack 3d2de3d562 msiexec: Ignore the TRANSFORMS variable.
Ignore the TRANSFORMS variable when building a list of transforms for
advertising.  The variable is used to apply transforms when installing.
2006-01-04 14:51:42 +01:00
Alexandre Julliard 777cd4f7df Removed a useless header file. 2005-08-11 10:59:51 +00:00
Mike McCormack 65ad7da1f7 Fix some declaration and write string warnings. 2005-06-16 10:45:25 +00:00
Robert Shearman 733a033303 Rename DllRegisterServer and DllUnregisterServer to avoid confusion
with the COM functions of different signatures.
2005-05-17 14:33:36 +00:00