Commit Graph

3794 Commits

Author SHA1 Message Date
Zebediah Figura 77e3d3372f msi: Use MsiProcessMessage() to send error messages.
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-08-08 20:55:59 +09:00
Nikolay Sivov 3ca2dfe462 msi: Avoid uninitialized pointer access on error path (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-08 20:53:08 +09:00
Francois Gouget d631714ca8 msi: Add a trailing linefeed to a FIXME() trace.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-08 20:53:08 +09:00
Francois Gouget 5e7b8891fc msi/tests: Add a trailing linefeed to a couple of ok() calls.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-08 20:53:08 +09:00
Zebediah Figura 39c2ff0283 msi: Send the dialog created message in dialog_create().
It should be sent before the message loop, and it should also be sent
for dialogs spawned with control events.

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-21 14:53:43 +02:00
Zebediah Figura 14f865e14f msi: Don't queue a parent dialog to be shown in EndDialog.
When using "Return", the parent dialog already exists, so there is
no need to do this. Moreover, if the parent dialog is queued, a
subsequent "Exit" would not properly exit the parent dialog.

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-21 14:53:38 +02:00
Zebediah Figura 8826584b1d msi: Process ShowDialog/EndDialog after all other control events.
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-21 14:53:34 +02:00
Zebediah Figura 44fb23dc32 msi: Don't set _BrowseProperty.
This is a revert of 166a7e993c.
_BrowseProperty is not set by Windows, but should rather be set by the
program in question.

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-21 14:53:00 +02:00
Zebediah Figura b4c39f4e7c msi: Avoid a null pointer dereference.
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-21 14:52:57 +02:00
Zebediah Figura e76b42c096 msi/tests: Use static linking for a couple functions.
These are available on all of the test machines.

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-21 14:52:49 +02:00
Zebediah Figura 51bd884384 msi: Properly parse empty format strings.
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-11 18:26:03 +02:00
Zebediah Figura 16f0dffd01 msi: Return the correct values from 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>
2017-07-11 18:26:01 +02:00
Zebediah Figura f348c7c04c msi: Rewrite dump_record().
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-11 18:25:59 +02:00
Zebediah Figura f9c68dfd92 msi: Use the given record for INSTALLMESSAGE_ACTIONDATA.
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-10 20:51:09 +02:00
Zebediah Figura c788ed858e msi: Provide the result of the last 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>
2017-07-10 20:51:09 +02:00
Zebediah Figura 1505912ce1 msi: Allow setting NULL in MsiSetInteger().
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-10 20:51:09 +02:00
Zebediah Figura f9f53fe624 msi: Correctly format the template field for MsiProcessMessage().
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-10 20:51:08 +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
Zebediah Figura 5da9250394 msi: Don't increment the refcount when creating 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
Zebediah Figura 48237e249b msi: Add a basic internal UI implementation.
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-06 18:51:18 +02:00
Zebediah Figura c83b8e0a16 msi/tests: Work around test failures on Windows.
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-06 18:51:05 +02:00
Francois Gouget e2e94d1c93 msi/tests: Add a trailing linefeed to an ok() call.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-06 18:50:47 +02:00
Zebediah Figura 39b841d189 msi: Fix a buffer overrun.
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-06-29 11:13:18 +02:00
Zebediah Figura 9032279c72 msi: Implement UI messages in MsiOpenPackage().
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-06-27 11:27:48 +02:00
Zebediah Figura bcc4a04754 msi: Implement INSTALLMESSAGE_INITIALIZE and INSTALLMESSAGE_TERMINATE.
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-06-27 11:27:48 +02:00
Zebediah Figura a388906a1a msi: Send the correct UI messages upon calling MsiDoAction().
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-06-27 11:27:48 +02:00
Zebediah Figura 358ed0d836 msi/tests: Add tests for external UI callback.
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-06-27 11:27:48 +02:00
Zebediah Figura 20b33b8009 msi/tests: Add another test for MsiProcessMessage.
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-06-26 11:12:53 +02:00
Zebediah Figura de5246a659 msi: Don't reimplement record formatting.
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-06-20 10:38:33 +02:00
Zebediah Figura 4e49ae3cc6 msi: Pass the given record to the callback.
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-06-19 12:04:38 +02:00
Zebediah Figura df31a7c1ec msi: Store string and record callback data separately.
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-06-19 12:04:34 +02:00
Zebediah Figura cef67993c5 msi: Use an external UI record handler before a string handler.
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-06-19 12:04:28 +02:00
Akihiro Sagawa f6ced24999 msi: Avoid using isspace()/isdigit() for WCHARs.
Found with Coccinelle.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-18 13:36:56 +02:00
Andrey Gusev 635457bb72 msi: Add MsiGetPatchFileListA/W stubs.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-08 07:01:10 -05:00
Hans Leidekker b956b1f407 msi: Set patch property Uninstallable.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:54 +02:00
Hans Leidekker f3adb4a17a msi: Properly handle DWORD registry values in MsiGetPatchInfoEx.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:54 +02:00
Hans Leidekker d94653d0eb msi: Apply feature selection to the whole feature subtree.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:54 +02:00
Hans Leidekker d12728a872 msi: Avoid zero size allocations (Valgrind).
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 10:52:43 +02:00
Huw Davies 582245b5c4 msi/tests: Clean up the registry in the correct order.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-21 20:52:04 +01:00
Mark Jansen b53957df2a msi: Use the correct type when calculating feature cost.
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>
2017-03-07 17:47:36 +01:00
Hans Leidekker 64c0625f25 msi: Implement MsiGetComponentPathExA/W.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-03 13:23:24 +01:00
André Hentschel 5aa2d48796 msi: Fix some more spec file entries.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-23 13:15:45 +01:00
André Hentschel c6592229a3 msi: Fix some spec file entries.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-27 16:31:42 +01:00
Francois Gouget f0a5b13980 msi/tests: A spelling fix in a variable name.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-10 19:19:14 +01:00
Francois Gouget 167de42705 msi: Make reg_get_{multi}sz() static.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-10 19:19:14 +01:00
Nikolay Sivov f5e4dad68c msi: Fix handling of NULL buffer in MsiGetProductPropertyW() (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-12 19:14:20 +01:00
Hans Leidekker 3b5b3ef185 msi: Fix MSIREG_OpenUserComponentsKey and MSIREG_DeleteUpgradeCodesKey for Wow64.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-29 12:15:48 +01:00
Huw Davies 5ac02423b0 msi: Correctly size packagecode as it's an unsquashed guid.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-29 12:14:34 +01:00
Hans Leidekker d17d54e16d msi: Properly remove the product code from the ugrade codes key.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-04 14:10:08 +01:00
Hans Leidekker d4814f98c8 msi: Also roll back changes made in PublishProduct.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-04 14:10:06 +01:00
Hans Leidekker 6233eace97 msi: Run the installer in silent mode in RemoveExistingProducts.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-04 14:10:04 +01:00
Hans Leidekker 5343a6f445 msi: Take the install context into account when deleting the product key.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-04 14:10:02 +01:00
Hans Leidekker 2b0d2ec553 msi: Use exact size for squashed GUID buffers.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-04 14:09:59 +01:00
Hans Leidekker 6eae08774c msi/tests: Fix a typo in test data.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-04 14:09:56 +01:00
Hans Leidekker 6f463db5b0 msi/tests: Properly clean up test services.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-04 14:09:45 +01:00
Hans Leidekker dea323dcec msi: Handle descriptors without component in MsiProvideQualifiedComponentEx.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-04 14:09:43 +01:00
Hans Leidekker f6c4f87d32 msi/tests: Fix some test failures on Windows 10.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-04 14:09:38 +01:00
Hans Leidekker cfb10615e1 msi: Accept descriptors without component.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-25 11:54:08 +02:00
Carlo Bramini b568992383 msi: Remove useless code.
Signed-off-by: Carlo Bramini <carlo_bramini@users.sourceforge.net>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-24 11:01:32 +02:00
Hans Leidekker 13af267e75 msi: Use proper return types in MSI_RecordSetStreamFromFileW.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-14 22:25:22 +09:00
Hans Leidekker b0b2a1a4de msi: Use proper return types in msi_table_apply_transform.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-14 22:25:17 +09:00
Sebastian Lackner feb986ac5b msi: Do not return ERROR_* constant in HRESULT function.
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-09-14 22:24:44 +09:00
Michael Stefaniuc c0a6f0f7a8 msi: Use CONTAINING_RECORD() to get from a field to a struct.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-12 22:58:54 +09:00
Francois Gouget a8e401839e msi: Make parse_platform() static.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-08 18:41:49 +09:00
Andrey Gusev e48b8a4fd1 msi: Use debugstr_guid() in TRACE() messages.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-08 18:41:39 +09:00
Piotr Caban 92defc736e msi: Don't validate platform while checking if transform is applicable.
.Net2.0SP2 64-bit installer uses patches with INTEL platform in x64
package to update 32-bit parts of .Net. Native applies patch even if
platform is unknown.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-14 22:10:31 +09:00
Andreas Maier b947ff3b0f msi/tests: Test for error control flag handling.
Signed-off-by: Andreas Maier <andy1.m@gmx.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-07 16:46:46 +09:00
Andreas Maier 62eb31d852 msi/tests: Delete TestService after testing.
Signed-off-by: Andreas Maier <andy1.m@gmx.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-07 16:46:25 +09:00
Andreas Maier ddc1baa432 msi: Use special error control flag in CreateService.
Signed-off-by: Andreas Maier <andy1.m@gmx.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-07 16:46:19 +09:00
Andrey Gusev 8260eabb86 msi/tests: Fix a typo in comment.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-27 00:14:56 +09:00
Kirill Smirnov 0869852c2e msi: Do not return success on failure (spotted by clang).
Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-14 12:11:57 +09:00
Francois Gouget 50ab36ac97 msi/tests: Spelling fixes for some action and package ok() messages.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-21 16:25:49 +09:00
Michael Stefaniuc 148d0e4576 msi: Use wine_dbgstr_rect() to trace a RECT.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-20 21:52:04 +09: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
Thomas Faber 57fa1bee65 msi: Do not open registry keys with no access rights.
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-01 18:49:25 +09:00
Frédéric Delanoy 7ab2139191 msi/tests: Use todo_wine_if() in tests.
Signed-off-by: Frédéric Delanoy <frederic.delanoy@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-20 12:07:11 +09:00
Hans Leidekker 7b21373bf1 msi: Fix the CHAR column type.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-15 21:30:04 +09:00
Hans Leidekker 8fe7ee31a1 msi: Include the dialog in the check for duplicate event subscriptions.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 22:37:32 +09:00
Alistair Leslie-Hughes 434f0f7cb1 msi: Refreh controls after spawned dialog is closed.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 21:29:55 +09:00
Alistair Leslie-Hughes e90b34e131 msi: Allow PathEdit controls to be updated.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 21:29:52 +09:00
Nikolay Sivov ae3f25cc44 msi: Fixed same file handle closed twice (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-11 19:54:12 +09:00
Thomas Faber 689f048497 msi: Use the intended attributes when overwriting the target file in cabinet_copy_file.
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-29 17:08:41 +01:00
Sergey Isakov 88a96478c3 msi/tests: Simplify the logic in an if condition.
Signed-off-by: Sergey Isakov <isakov-sl@bk.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-27 20:53:22 +09:00
Hugh McMaster 11669fa5e2 Assorted spelling and grammar fixes.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-17 22:56:40 +09:00
Dmitry Timoshkov 2ee784e624 msi: Make sure to reset the 'in_quotes' state in all cases.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 21:11:05 +09:00
Dmitry Timoshkov 2d7f00c8d3 Revert "msi: Correctly parse double quotes in the token value.".
This reverts commit 42caac841e.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 21:10:59 +09:00
Nikolay Sivov fe8ecc23aa msi/tests: Add missing return value test (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 12:45:04 +09:00
Nikolay Sivov 2257928a7a msi: Use VARIANT_BOOL values consistently for VT_BOOL type (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 21:19:51 +09:00
Gerald Pfeifer 40922ccd4f msi: Avoid shift overflow in msi_view_get_row.
Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 00:25:32 +09:00
Dmitry Timoshkov 6b9a87c7a8 msi: Add a trace to msi_get_property.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2015-10-06 22:59:58 +09:00
Dmitry Timoshkov 42caac841e msi: Correctly parse double quotes in the token value.
This fixes an installer that passes to InstallProduct a command line like
PROPERTY1="Installing ""Product name"" version 8.0" PROPERTY2=1 PROPERTY3=1
In this case properties PROPERTY2 and PROPERTY3 were not recognized and that
led to an installation failure when a custom action didn't see them as set.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2015-10-06 22:59:38 +09:00
Dmitry Timoshkov 1b3087e79f msi/tests: Add a test for MsiInstallProduct with command line containing double quotes inside of the property.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2015-10-06 22:59:32 +09:00
Hans Leidekker 9a5788afc1 msi: Set the PrimaryVolumeSpaceRequired and PrimaryVolumeSpaceRemaining properties.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
2015-10-01 16:23:15 +09:00
Hans Leidekker 100c043e89 msi/tests: Fix a test failure on Ultimate editions.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
2015-09-25 21:02:52 +02:00
Akihiro Sagawa 6e51cfddfd msi: Feature treeview should have WS_TABSTOP style. 2015-09-14 16:47:52 +09:00
Piotr Caban f326e372d1 msi/tests: Fix MsiProvideQualifiedComponent test failure. 2015-09-14 16:19:27 +09:00
Piotr Caban e8f4fea5a0 msi: Check HKLM/Software/Classes/Installer/Components path while looking for components. 2015-09-09 18:26:32 +09:00
Hans Leidekker fca92ae67c msi/tests: Avoid test failures when running as an unprivileged user. 2015-09-07 18:52:14 +09:00
Jacek Caban d8f79a037c msi: Fixed varg0 leak in InstallerImpl_SummaryInformation. 2015-09-01 15:23:53 +09:00
Hans Leidekker d3ce29449b msi: Implement Installer::SummaryInformation. 2015-08-26 23:15:26 +09:00
Hans Leidekker ddaba7a369 msi: Don't add the same environment string more than once. 2015-08-26 23:15:26 +09:00
Dmitry Timoshkov 2ad9312f02 msi: Avoid using dialog record after free. 2015-08-18 19:57:11 +09:00
Hans Leidekker 99dfc15e72 msi: Only remove environment strings that were added on install. 2015-08-18 17:30:17 +09:00
Hans Leidekker 7834983541 msi/tests: Mark a test result on win2k3 as broken. 2015-07-17 20:19:41 +09:00
Huw Davies fed41f5306 msi: Don't call CloseServiceHandle() with an invalid handle. 2015-07-16 21:20:50 +09:00
Hans Leidekker dfae842cca msi/tests: Avoid another test failure on win2k3. 2015-07-15 23:19:32 +09:00
Hans Leidekker 0bd46f1501 msi: Add a stub implementation of MsiJoinTransaction. 2015-07-15 23:19:29 +09:00
Hans Leidekker f9dc20cfcc msi: Fix a couple of memory leaks (Coverity). 2015-07-15 23:19:25 +09:00
Hans Leidekker 17405f6b91 msi: Check the return value of MSI_QueryGetRecord (Coverity). 2015-07-15 23:19:23 +09:00
Huw Davies e1a65bed68 msi: Be more selective about which access modes are used to open or create keys.
An installer was failing when trying to create subkeys after denying
delete access to their parent key.
2015-07-15 23:19:09 +09:00
Huw Davies 4a992fec01 msi: Fix a registry key leak. 2015-07-15 23:18:54 +09:00
Hans Leidekker b71075ad9b msi/tests: Avoid test failures on win2k3. 2015-07-10 21:44:49 +09:00
Bernhard Übelacker a1dbf4d78b msi: Remove shortcut which calls RegEnumValueW with value and val_count as NULL. 2015-07-01 15:19:13 +09:00
Bernhard Übelacker db5f235a8b msi/tests: Test MsiSourceListEnumMediaDisks with volumeLabel and diskPrompt as NULL. 2015-07-01 15:19:09 +09:00
Hans Leidekker 597c5f9c4b msi: Open database cabinet streams through the streams implementation. 2015-06-22 19:18:48 +09:00
Hans Leidekker 806ff30f92 msi/tests: Fix test failures on win2k3. 2015-06-22 19:17:50 +09:00
Marcus Meissner d0cb2519b6 msi: Free rec in error exit (Coverity). 2015-06-12 15:24:44 +09:00
Alexandre Julliard 12a2b849a6 msi: Inherit state for radio buttons from the parent group dynamically. 2015-04-29 12:22:57 +09:00
Hans Leidekker 4710e973f8 msi: Initialize a variable (valgrind). 2015-04-21 22:21:36 +09:00
Hans Leidekker e6ce4de393 msi: Fix an invalid memory access (valgrind). 2015-04-21 22:21:31 +09:00
Hans Leidekker 55b678e186 msi: Initialize a variable (valgrind). 2015-04-21 22:21:27 +09:00
Hans Leidekker 6ef2d26a53 msi: Fix a trace.
Reported by Marcus Meissner.
2015-04-21 22:21:24 +09:00
Hans Leidekker 8969377647 msi: Perform a suffix match on the volume name. 2015-04-17 14:52:45 +09:00
Hans Leidekker 20c3c09fac msi: Improve the check for files obsoleted by patches. 2015-04-17 14:52:42 +09:00
Hans Leidekker dc2228305c msi: Add support for patching global assembly files. 2015-04-10 22:46:19 +09:00
Hans Leidekker d263c91ce2 msi: Assume that file patches from registered MSI patches have already been applied. 2015-04-10 22:46:19 +09:00
Hans Leidekker e4fd6265eb msi: Take the component action into account for file patches. 2015-04-10 22:46:19 +09:00
Hans Leidekker 17b80c8ec0 msi: Don't read past the end of the patch list in MsiApplyMultiplePatchesW. 2015-04-10 22:46:18 +09:00
Hans Leidekker eb116d6640 msi: Get rid of global variables the cabinet extraction callbacks. 2015-04-01 22:34:20 +09:00
Hans Leidekker 17b05316a5 msi: Clean up handling of temporary files. 2015-04-01 22:34:20 +09:00
Hans Leidekker 20ef12a762 msi: Don't mark global assembly files as installed when they are extracted. 2015-04-01 22:34:20 +09:00
Hans Leidekker 006801366e msi: Don't apply file patches in the cabinet extraction callback. 2015-04-01 22:34:19 +09:00
Hans Leidekker 0762dd68f8 msi: Store the disk id for file patches. 2015-04-01 22:34:19 +09:00
Hans Leidekker 2acc11c215 msi: Import mspatcha instead of loading it dynamically. 2015-04-01 22:34:19 +09:00
Frédéric Delanoy f6a341c747 Assorted spelling/grammar fixes. 2015-03-27 22:29:48 +09:00
Hans Leidekker c66f9bef60 msi: Check file state before installing global assemblies. 2015-03-25 22:40:45 +09:00
Hans Leidekker 19e51936e0 msi: Skip files from the original media if a patch is applied. 2015-03-25 22:40:41 +09:00
Hans Leidekker b7453555a2 msi: Check the component enabled flag earlier. 2015-03-25 22:40:38 +09:00
Hans Leidekker f8dc7c221b msi: Use the last sequence number specified for patch media when updating media records. 2015-03-25 22:40:34 +09:00
Hans Leidekker cd73576ec0 msi: Avoid allocating a database handle only to retrieve the summary information. 2015-03-25 22:40:30 +09:00
Hans Leidekker 052b3a748e msi: Fall back to the database summary information stream in MSI_OpenPackageW. 2015-03-25 22:40:24 +09:00
Francois Gouget f51569626c msi: Mark internal symbols with hidden visibility. 2015-03-24 20:01:30 +09:00
Nikolay Sivov 2478421d87 msi: Return interface pointer instead of impl pointer. 2015-03-24 18:16:37 +09:00
Hans Leidekker fa23c7fcb3 msi: Handle errors from IStorage_CreateStream instead of trying to open the stream first in msi_commit_streams. 2015-03-17 00:19:51 +09:00
Hans Leidekker db3fdbe1e3 msi: Fix the case where the summary information stream is already open in MsiGetSummaryInformationW. 2015-03-17 00:19:50 +09:00
Hans Leidekker 7a4d8f57c7 msi: Improve tracing. 2015-03-17 00:19:48 +09:00
Francois Gouget 232d1b6e3f msi: Remove unneeded NONAMELESSXXX directives. 2015-03-16 15:04:21 +09:00
Michael Stefaniuc be813aed6f msi: Remove comparison of pointer with >= NULL (PVS-Studio). 2015-03-09 22:07:08 +09:00
Hans Leidekker 4c1791f53e msi: Add offsets to file patch sequence numbers. 2015-03-04 23:57:42 +09:00
Hans Leidekker 123428942d msi: Support updating streams. 2015-03-04 23:57:42 +09:00
Hans Leidekker af6281701d msi: Decode stream names in load_streams. 2015-03-04 23:57:41 +09:00
Marcus Meissner c4bf8a85ee msi: Fix memory leak (Coverity). 2015-02-16 19:18:44 +09:00
Hans Leidekker 0dba391d67 msi: Don't write streams to storage until the database is committed.
Native allows streams to be created with names that exceed the maximum
length allowed by OLE storages. These streams can be used normally, it's
just not possible to commit such a database.
2015-02-13 21:48:21 +09:00
Hans Leidekker db3346247c msi: Get rid of the refcount parameter to msi_addstringW. 2015-02-13 21:48:12 +09:00
Hans Leidekker d954fbf8da msi: Get rid of the open streams cache. 2015-02-13 21:48:07 +09:00
Hans Leidekker c6f3f72d61 msi: Always update column info after applying a transform to the _Columns table. 2015-02-13 21:48:02 +09:00
Austin English f8089da4b3 msi: Add stubs for MsiEnumClientsExA/W. 2015-02-04 21:32:50 +09:00
Hans Leidekker a884d98e99 msi: Add a partial implementation of MsiProvideComponent. 2015-01-21 18:08:10 +01:00
Akihiro Sagawa e52cbbcd03 msi: Remove 32-bit component registry keys with KEY_WOW64_32KEY flag. 2015-01-19 14:20:27 +01:00
Akihiro Sagawa cdf3c23645 msi: Open 32-bit component registry keys with KEY_WOW64_32KEY flag. 2015-01-19 14:20:10 +01:00
Michael Stefaniuc 165c9e7cb9 msi: Remove no-op toupperW() statement (PVS-Studio). 2014-12-10 13:32:01 +01:00
Hans Leidekker 2a8043aa6b msi: Properly handle service control events in Start/StopService. 2014-12-02 13:07:16 +01:00
André Hentschel 481fce766f msi: Remove unused strings (Clang). 2014-12-02 10:31:18 +01:00
André Hentschel 1c3179b21b msi/tests: Remove unused variables (Clang). 2014-12-02 10:31:14 +01:00
Hans Leidekker e3143f1105 msi: Update version resource. 2014-11-27 13:14:16 +01:00
Michael Stefaniuc f52983807e msi/tests: Remove redundant if check (PVS-Studio). 2014-11-26 17:26:34 +01:00
Michael Stefaniuc 481ff775ca msi: Simplify check for an empty string (PVS-Studio). 2014-11-05 19:37:10 +09:00
Hans Leidekker 609de1a80a msi: Call execute_script directly in InstallFinalize. 2014-11-04 21:19:31 +09:00
Hans Leidekker 98ae03ff4d msi: Update properties after each transform that affects the property table. 2014-11-04 21:19:28 +09:00
Hans Leidekker 35ce56ac85 msi: Pass a database pointer to msi_clone_properties instead of a package pointer. 2014-11-04 21:19:24 +09:00
Austin English d2bc004264 msi: Add stubs for MsiRemovePatches(A/W). 2014-11-03 16:35:38 +09:00
Hans Leidekker 7f57d8f19a msi: Format registry values before interpreting value type. 2014-10-31 10:49:19 +09:00
Bruno Jesus 8f79f5f54b msi: Remove duplicate if condition. 2014-10-27 14:36:03 +09:00
Hans Leidekker 1e3f15d88c msi: Support more transform validation flags. 2014-10-21 18:50:01 +09:00
Hans Leidekker 5cb10c96b2 msi: Don't skip the media check for the first volume.
Some installers require the first volume to be reinserted.
2014-10-15 22:40:03 +09:00
Nikolay Sivov 8f971bfee6 msi: Use E_NOT_SUFFICIENT_BUFFER definition. 2014-10-08 13:13:36 +02:00
Hans Leidekker f41ac94e0e msi: Include the terminating null in the buffer size for decoded stream names. 2014-10-02 16:59:04 +02:00
Hans Leidekker 29baed1bc2 msi: Improve support for advertized shortcuts. 2014-09-12 15:30:13 +02:00
Sebastian Lackner 582f2640d2 msi: Fix ITERATE_MoveFiles when no source- and destname is specified. 2014-09-04 13:37:15 +02:00
Hans Leidekker a5d8ab57f6 msi: Check transform validation flags. 2014-09-03 16:31:17 +02:00
Hans Leidekker 614cb7eac7 msi: Update the cached product code when the property has changed. 2014-09-01 21:10:12 +02:00
Hans Leidekker 5709249986 msi: Return an error from MSI_GetComponentPath if the buffer is too small. 2014-09-01 21:10:12 +02:00
Hans Leidekker 04f9058a28 msi: Set the OutOfNoRbDiskSpace property. 2014-09-01 21:10:12 +02:00
Hans Leidekker 90f023a635 msi/tests: Make tests pass when running from the root directory. 2014-09-01 21:10:11 +02:00
Piotr Caban de9f19df32 msi: Add more feature state tests. 2014-07-24 13:02:47 +02:00
Piotr Caban b1a4055245 msi: Don't check feature install level on features specified in arguments. 2014-07-24 13:02:45 +02:00
Piotr Caban 0dff7bff9a msi: Fix feature actions overriding in process_state_property. 2014-07-24 13:02:43 +02:00
Piotr Caban 331c86f124 msi: Don't publish features with non positive install level. 2014-07-24 13:02:42 +02:00
Akihiro Sagawa 0eed829f7f msi/tests: Add CLSID registry tests for mixed package. 2014-07-21 18:42:45 +02:00
Akihiro Sagawa 5b76cd199a msi/tests: Add non-existence value tests for mixed package. 2014-07-21 15:57:23 +02:00
Akihiro Sagawa 6fc6d32da2 msi: Move set_installed_prop() call because platform information is needed in it. 2014-07-21 15:56:54 +02:00
Daniel Beitler deb2742267 msi: Prevent call to memset with a null pointer in get_tablecolumns function. 2014-05-19 10:01:43 +02:00
Jérôme Gardou 70225a4de3 msi: Expand REG_EXPAND_SZ keys when resolving AppSearch entries. 2014-05-01 10:50:39 +02:00
Hans Leidekker 95d72ae6f0 msi: Avoid a crash when MIME entries point to non-existing extensions. 2014-05-01 10:18:15 +02:00
Hans Leidekker 4c8edb1b4c msi/tests: Fix a couple of memory leaks (valgrind). 2014-04-30 15:15:30 +02:00
Nikolay Sivov 5497a41e92 msi: Fix a leak on error path (Coverity). 2014-04-10 09:11:52 +02:00
Nikolay Sivov 0bcf4a5bb6 msi: Fix a leak on error path (Coverity). 2014-04-10 09:11:50 +02:00
Vincent Povirk a4c6107d81 msi: Fix infinite loop. 2014-04-01 10:43:42 +02:00
Nikolay Sivov 195168351f msi: Fix a record leak on failure removing a column (Coverity). 2014-03-27 12:06:04 +01:00
Nikolay Sivov 203d282a78 msi: Fix a record leak on error path (Coverity). 2014-03-27 12:06:04 +01:00