Hans Leidekker
54ef6e5e39
msi: Add support for custom action type 7.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44618
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-27 14:44:33 +01:00
Zebediah Figura
e4e7e956bd
msi: Close all handles opened by a custom action thread.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47418
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>
2019-07-01 14:41:22 +02:00
Alexandre Julliard
7cd3c9f073
msi: Build with msvcrt.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-13 14:34:51 +02:00
Alexandre Julliard
d5a372abbb
include: Move inline assembly definitions to a new wine/asm.h header.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 13:45:07 +02:00
Piotr Caban
8c4b75f252
msi: Use case sensitive compare in handle_msi_break.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-05 09:13:38 +02:00
Zebediah Figura
27a7952a84
msi: Append the custom action client PID to the endpoint name.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46833
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>
2019-03-25 10:21:39 +01:00
Hans Leidekker
15f852015a
msi: Disable filesystem redirection only when really needed.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46846
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 08:23:18 +01:00
Hans Leidekker
965ca1b4de
msi: Fix memory leaks.
...
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 17:06:52 +02:00
Hans Leidekker
14ddb49df2
msi: Rename msi_reset_folders to msi_reset_source_folders.
...
It was always called with source parameter set to TRUE.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-10 17:44:09 +02:00
Zebediah Figura
baea371c3d
msi: Add exception handling around all custom action RPC calls.
...
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-09-10 12:30:01 +02:00
Michael Stefaniuc
a9cb67bb7f
msi: 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-21 10:22:10 +02:00
Zebediah Figura
51ad009bac
msi: Don't assume that WoW64 redirection is enabled in custom_start_server().
...
As of 3a884c2ef
the server is started on the main thread, so this is no
longer a valid assumption. In particular, we disable WoW64 redirection while
running standard actions, including the top-level INSTALL action.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45663
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-20 19:39:14 +02:00
Michael Stefaniuc
c2add8a030
msi: Unlock msi_custom_action_c on the error paths.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45483
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
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-17 16:51:02 +02:00
Zebediah Figura
b7f06accb0
msi: Don't refcount the msi_custom_action_info struct.
...
This is unnecessary, and may have always been so. The struct will either be
freed after it completes synchronously, or after it has completed
asynchronously in ACTION_FinishCustomActions().
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:11 +02:00
Zebediah Figura
583edf7f59
msi: Protect communication with the custom action server with a critical section.
...
Avoids a potential race whereby an asynchronous custom action receives the
wrong thread handle.
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:08 +02:00
Zebediah Figura
3a884c2ef7
msi: Don't start the custom action server inside of custom_client_thread().
...
Asynchronous custom actions don't wait for custom_client_thread() to
terminate, so it's possible for two consecutive actions to both try to start
the server at once, causing failures when the second action e.g. receives
ERROR_PIPE_BUSY from CreateNamedPipe().
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:04 +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
Zebediah Figura
2a9e0f1fad
msi: Implement deferral for standard and custom actions.
...
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-14 10:15:59 +02:00
Marcus Meissner
9f1cdb4970
msi: Do not free hPackage twice or uninitialized (Coverity).
...
Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 09:39:55 +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
6135b38d7d
msi: Avoid connecting to the RPC server more than once.
...
This is a no-op as is, but is necessary as of the next patch in the case of
nested custom actions.
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
5c7cf0a47d
msi: Avoid starting the RPC server more than once for a given package.
...
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
756bbb5bb7
msi: Store the current script in the package.
...
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-06-06 11:18:34 +02:00
Zebediah Figura
f4bcd95fa7
msi: Avoid leaking custom action data.
...
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-05-09 15:50:28 +02:00
Zebediah Figura
deb4f97000
msi: Check return value of GetBinaryType().
...
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-05-04 16:56:44 +02:00
Zebediah Figura
e355cb6277
msi: Don't load a custom action DLL in the main process.
...
This has no effect anymore, and won't work if the architecture doesn't match.
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-05-01 13:12:26 +02:00
Zebediah Figura
6049b0f8c3
msi: Execute the custom action server with the correct bitness.
...
The bitness depends solely on the bitness of the DLL (tested manually).
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-05-01 13:12:26 +02:00
Zebediah Figura
71c0738c0e
msi: Initialize [out] strings to NULL.
...
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-27 19:56:36 +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
Zebediah Figura
2635333922
msi: Make remote_GetActionInfo() RPC-compatible.
...
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:05 +02:00
Zebediah Figura
2192c9a50a
msi: Make MsiGetProperty() RPC-compatible.
...
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-17 20:57:40 +02:00
Zebediah Figura
8bfb4e8b62
msi: Convert the IWineMsiRemote* remote interfaces to RPC stubs.
...
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-16 11:48:17 +02:00
Zebediah Figura
b9b459810f
msi: Allocate the remote handle on the server side.
...
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-16 11:46:28 +02:00
Hans Leidekker
f25501db4b
Revert "msi: Store the current script in the package."
...
Commit 036f007e24
(which reverts
86bc556f9f
) is not sufficient to
fix the Office installers because MsiGetMode(MSIRUNMODE_SCHEDULED)
no longer does the right thing after the revert.
That is caused by "msi: Store the current script in the package.",
which, in hindsight, should have been part of the first commit.
This reverts e1e668d41f
.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-04 15:13:33 +01:00
Zebediah Figura
036f007e24
Revert "msi: Don't execute a deferred custom action when not running the install script.".
...
This (effectively) reverts commit 86bc556f9f
.
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>
2017-12-22 11:39:34 +01:00
Zebediah Figura
13a00077e4
msi: Complain louder if we can't find a custom action DLL or EXE.
...
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>
2017-12-05 20:30:04 +01:00
Zebediah Figura
e1e668d41f
msi: Store the current script in the package.
...
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>
2017-09-19 20:01:39 +02:00
Zebediah Figura
5245b9d3a8
msi: Remove a superfluous substructure.
...
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>
2017-09-19 20:01:35 +02:00
Zebediah Figura
86bc556f9f
msi: Don't execute a deferred custom action when not running the install script.
...
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>
2017-09-18 09:57:07 +02:00
Zebediah Figura
3033daec11
msi: Implement UI messages for dialogs.
...
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>
2017-07-07 13:01:26 +02:00
Sebastian Lackner
92aa91d2de
msi: Fix stack alignment in CUSTOMPROC_wrapper.
...
Spotted by Dmitry Timoshkov.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-07 16:44:18 +09:00
Hans Leidekker
17b05316a5
msi: Clean up handling of temporary files.
2015-04-01 22:34:20 +09:00
Nikolay Sivov
2478421d87
msi: Return interface pointer instead of impl pointer.
2015-03-24 18:16:37 +09:00
Nikolay Sivov
dc33b13581
msi: Fix a record leak on error paths (Coverity).
2014-03-27 12:06:04 +01:00
Hans Leidekker
fcb924c144
msi: Fall back to the global temporary directory when the TempFolder property resolves to a non-existing directory.
2014-01-03 17:00:08 +01:00
Hans Leidekker
b64fabf39e
msi: Don't defer custom actions in the UI sequence if they match the currently running script.
2013-06-03 21:11:51 +02:00
Hans Leidekker
1be1b8433a
msi: Remove an unused parameter from action_type_matches_script.
2013-05-29 18:12:05 +02:00
Dmitry Timoshkov
30fc34b881
msi: Fix memory leak.
2013-05-21 12:06:26 +02:00