msi: Reuse the custom action server process where possible.
commit457431ab5bc1dd10c4957f145de85c4ba6d0ef72
authorZebediah Figura <z.figura12@gmail.com>
Tue, 10 Jul 2018 10:08:47 +0000 (10 12:08 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 11 Jul 2018 13:45:11 +0000 (11 15:45 +0200)
tree85fe9e83dc8f0710a1d08bc89f1c39c82f9e3527
parent6135b38d7d60e7bceb36a57630cad72d3e7e4b2e
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>
dlls/msi/custom.c
dlls/msi/msipriv.h
dlls/msi/package.c
dlls/msi/tests/custom.c
dlls/msi/tests/custom.spec
dlls/msi/tests/install.c
programs/msiexec/msiexec.c