Commit Graph

3415 Commits

Author SHA1 Message Date
Hans Leidekker
462ec1ba43 msi: Return correct length for the empty string from deformat_string. 2012-11-07 18:12:08 +01:00
Frédéric Delanoy
85bf1082ce msi: Fix some leaks (coverity). 2012-11-07 13:56:03 +01:00
Hans Leidekker
cfadbddcaf msi: Avoid a crash when target paths have not yet been resolved. 2012-11-06 20:00:27 +01:00
Frédéric Delanoy
84541cc5e3 msi: Fix a leak (coverity). 2012-11-05 17:44:19 +01:00
Hans Leidekker
7d3f903db1 msi: Fix handling of REG_MULTI_SZ values in the WriteRegistryValues action. 2012-11-05 17:44:18 +01:00
Hans Leidekker
570322069c msi: Preserve strings with embedded nulls in the record formatting implementation. 2012-11-05 17:44:18 +01:00
Hans Leidekker
8d21f998c3 msi: Fix handling of strings with embedded nulls in msi_addstring. 2012-11-05 17:44:17 +01:00
Hans Leidekker
31ea3f44dd msi: Return length for the empty string in msi_string_lookup. 2012-11-02 19:47:30 +01:00
Hans Leidekker
af08a2f6ba msi: Pass string length to msi_set_property in ACTION_CustomAction. 2012-10-29 14:41:55 +01:00
Hans Leidekker
52a87c9054 msi: Add a length parameter to msi_strcpy_to_awstring and use it where appropriate. 2012-10-29 14:41:49 +01:00
Hans Leidekker
2a31a3c057 msi: Don't create a copy of deferred custom action data. 2012-10-29 14:41:44 +01:00
Hans Leidekker
929d234072 msi: Return length instead of size from deformat_string. 2012-10-29 14:41:41 +01:00
Hans Leidekker
0f1d3474a8 msi: Add a length parameter to msi_set_property and use it where appropriate. 2012-10-29 14:41:36 +01:00
Hans Leidekker
a7ff2818fe msi: Preserve strings with embedded nulls when copying from a record to the string table. 2012-10-29 14:41:21 +01:00
Hans Leidekker
9588deb54c msi: Preserve strings with embedded nulls when copying from the string table to a record. 2012-10-29 14:41:16 +01:00
Hans Leidekker
32aed60786 msi: Preserve strings with embedded nulls in the record implementation. 2012-10-29 14:41:04 +01:00
Hans Leidekker
8d28cc0ac7 msi: Get rid of MSI_RecordSetStringA. 2012-10-29 14:40:55 +01:00
Hans Leidekker
9aa23c6c77 msi: Store string length in the record structure. 2012-10-29 14:40:46 +01:00
Hans Leidekker
6950ac1d1c msi: Add support for storing strings with embedded nulls in the string table. 2012-10-29 14:40:40 +01:00
Hans Leidekker
652863f4d5 msi: Add more tests for embedded nulls in string property values. 2012-10-29 14:40:31 +01:00
Hans Leidekker
a1c4d2c977 msi: Add a test for embedded nulls in string property values. 2012-10-29 14:40:18 +01:00
André Hentschel
1e361aa8cb msi/tests: Make multiline macros blocks (coverity). 2012-10-24 11:33:00 +02:00
Jacek Caban
3b9a13e94c msi: Make script Session object visible by name. 2012-09-18 14:48:24 +02:00
Jacek Caban
645ce64196 msi: Choose the right IActiveScriptParse* interface based on process type. 2012-09-18 14:48:19 +02:00
Hans Leidekker
dd8f54a49f msi: Don't reinstall components shared with other products. 2012-09-13 13:56:39 +02:00
Hans Leidekker
1ee3be6e80 msi: Only remove a component if the number of clients drops to zero. 2012-09-11 18:07:29 +02:00
Marcus Meissner
b9550ad352 msi: Move free after last usage (Coverity). 2012-09-06 18:23:40 +02:00
Jacek Caban
e679471885 Always define WIDL_C_INLINE_WRAPPERS. 2012-08-28 14:41:13 +02:00
Michael Stefaniuc
5974e9d120 msi/tests: Avoid a TRUE:FALSE conditional expression. 2012-08-15 12:12:49 +02:00
Hans Leidekker
842525f423 msi: Try the registered install location first when resolving the target directory. 2012-08-13 11:45:15 +02:00
Hans Leidekker
b7cefc9997 msi: Avoid an out of bounds access in msi_build_directory_name. 2012-08-13 11:45:11 +02:00
Hans Leidekker
f180de40dd msi: Implement the RemoveExistingProducts standard action. 2012-07-31 18:01:54 +02:00
Vincent Povirk
b8812afd33 msi: Stub Migrate10CachedPackagesW. 2012-07-31 10:52:53 +02:00
Hans Leidekker
6a588baaf7 msi: Use inline wrappers for calling COM methods. 2012-07-27 17:05:32 +02:00
Hans Leidekker
108d5927d0 msi: Use the right interface to call 32-bit and 64-bit custom action scripts. 2012-07-27 17:05:32 +02:00
Detlef Riekenberg
a7e1b7c6ea msi/tests: Use always static binding for GetTokenInformation. 2012-07-27 17:05:20 +02:00
Hans Leidekker
cbd83d0307 msi/tests: Mark some test results as broken. 2012-07-16 19:34:40 +02:00
Hans Leidekker
32fa9db888 msi: Don't hard-code the ServicePackLevel property. 2012-07-09 15:06:42 -04:00
Hans Leidekker
f55ee1a212 msi: Don't crash if no working directory is specified for custom action type 34. 2012-07-09 15:06:35 -04:00
Francois Gouget
7f0cfac5cc msi/tests: Get rid of unneeded function typedefs. 2012-06-15 18:35:37 +02:00
Hans Leidekker
a17ca16495 msi: Keep assembly caches loaded until the package is destroyed. 2012-06-12 10:22:24 +02:00
Hans Leidekker
3480ccbbb4 msi: Always load mscoree.dll from the system directory. 2012-06-12 10:22:15 +02:00
Hans Leidekker
458f6b7ccd msi: Don't fail if no .NET runtime is available. 2012-06-12 10:22:04 +02:00
Hans Leidekker
f6f1bfd6fb msi/tests: Use only uppercase characters for the PID_REVNUMBER property. 2012-06-12 10:21:55 +02:00
Hans Leidekker
0ed61000d3 msi: Support registry key names that exceed 255 characters. 2012-06-11 21:03:48 +02:00
Hans Leidekker
fc2c8a215f msi: Fail if a registry key cannot be created. 2012-06-11 21:03:48 +02:00
Hans Leidekker
fd0c2dabdf msi: Ignore the value if a registry value name is special. 2012-06-11 21:03:47 +02:00
Hans Leidekker
f0ea60049c msi: Add support for 64-bit registry components. 2012-06-11 21:03:47 +02:00
Hans Leidekker
e16bcda486 msi: Don't create empty values for special registry entries. 2012-05-31 12:37:22 +02:00
Hans Leidekker
c959e38625 msi: Don't terminate the string in msi_id2stringA.
This makes sure that the last string can be fully written when saving the
string table.
2012-05-31 12:37:22 +02:00
Hans Leidekker
35b9594244 msi: Add support for version 4.0 of the .NET runtime. 2012-05-17 17:21:42 +02:00
Hans Leidekker
d6105eaa1f msi: Use the correct function pointer in msi_init_assembly_caches. 2012-05-17 17:21:28 +02:00
Hans Leidekker
11daa6aad5 msi: Break out of the loop as soon as the assembly is detected in msi_load_assembly. 2012-05-17 17:21:25 +02:00
Michael Stefaniuc
49add07795 msi/tests: Test the correct return values. 2012-05-17 10:18:11 +02:00
Francois Gouget
fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02:00
Hans Leidekker
4b32c09376 msi: Add support for the ActionInfo progress message subtype. 2012-05-15 16:26:38 +02:00
Hans Leidekker
6c7d0993f0 msi: Add support for the ProgressAddition progress message subtype. 2012-05-15 16:26:37 +02:00
Hans Leidekker
022915f75b msi: Don't hide failure of script custom actions. 2012-05-15 16:26:37 +02:00
Hans Leidekker
32c7a52f5c msi: Resolve the target path for the ODBC driver file if necessary. 2012-05-08 16:21:40 +02:00
Alexandre Julliard
720a37d778 msi/tests: Skip MsiEnumProductsEx tests if not supported. 2012-05-03 23:31:43 +02:00
Francois Gouget
1bf438ab29 msi: Tweak msiexec's usage message. 2012-05-03 11:51:38 +02:00
Hans Leidekker
9700e9c7a6 msi: Fix a couple of DispGetParam calls. 2012-05-01 14:50:03 +02:00
Hans Leidekker
c3e3c81bfb msi: Add the Session object as a global member to custom action scripts. 2012-05-01 14:49:58 +02:00
Hans Leidekker
52738e4f93 msi: Remove a workaround for missing Windows Script interfaces. 2012-05-01 14:49:52 +02:00
Hans Leidekker
605e0b7b41 msi: Add support for uninstalling global assemblies. 2012-04-30 11:02:28 +02:00
Hans Leidekker
89e95aa92c msi: Avoid a crash in get_registered_local_package. 2012-04-26 19:26:41 +02:00
Hans Leidekker
fde66de6a5 msi: Don't free cached tables in MsiDatabaseCommit. 2012-04-26 19:26:37 +02:00
Hans Leidekker
c8bb335990 msi: Check supported languages in the AppSearch action. 2012-04-23 17:55:28 +02:00
Hans Leidekker
52f3d5bead msi: Remove child folders first in the RemoveFolders action. 2012-04-23 17:55:21 +02:00
Hans Leidekker
2e5bf9ca06 msi: Dynamically allocate the path buffer in MsiQueryComponentStateW. 2012-04-23 17:55:18 +02:00
Hans Leidekker
cf1cb30dfa msi: Initialize hkey in msi_comp_find_prod_key. 2012-04-23 17:55:14 +02:00
Hans Leidekker
f1af03fa16 msi: Reduce the indentation level in ACTION_GetComponentInstallStates. 2012-04-23 17:55:10 +02:00
Francois Gouget
f5a5cc067a msi: Make create_record() static. 2012-04-20 12:00:33 +02:00
Hans Leidekker
a7137ef035 msi: Remove an unneeded assignment. 2012-04-20 11:59:43 +02:00
Hans Leidekker
2b9be70975 msi/tests: Fix some leaks. 2012-04-20 11:59:39 +02:00
Hans Leidekker
2e51464e4d msi/tests: Add a test for MsiEnumProductsEx. 2012-04-20 11:59:35 +02:00
Hans Leidekker
fc73c9db0a msi: Fix install state detection for registry components. 2012-04-20 11:59:26 +02:00
Robert van Herk
f87c4a36dd msi: Fixed MsiGetFileHashW for empty files. 2012-04-06 20:40:59 +02:00
Hans Leidekker
dd205230a0 msi: Keep the UI level fixed during the lifetime of a package. 2012-04-05 17:53:20 +02:00
Hans Leidekker
350449fc43 msi: Suspend the installation if an action sets MSIRUNMODE_REBOOTNOW. 2012-04-02 13:30:41 +02:00
Hans Leidekker
15ee85dee8 msi: Implement MsiGet/SetMode(MSIRUNMODE_REBOOTNOW). 2012-04-02 13:30:36 +02:00
Hans Leidekker
a6b3d77021 msi: Use the state parameter passed to MsiSetMode. 2012-04-02 13:30:28 +02:00
Hans Leidekker
89c80c41ea msi: Rename the need_reboot flag to need_reboot_at_end. 2012-04-02 13:30:24 +02:00
Hans Leidekker
f01cd3a36d msi/tests: Add tests for MsiEnumComponents and MsiEnumComponentsEx. 2012-04-02 12:34:38 +02:00
Hans Leidekker
25b7228274 msi: Reimplement MsiEnumComponents on top of MsiEnumComponentsEx. 2012-04-02 12:34:28 +02:00
Hans Leidekker
8cebf01702 msi: Implement MsiEnumComponentsEx. 2012-04-02 12:34:24 +02:00
Hans Leidekker
8ea5266915 msi: Detect installed side-by-side assemblies. 2012-03-30 10:45:26 +02:00
Hans Leidekker
ccad8e9d80 msi/tests: Reduce code duplication in the feature/component state tests. 2012-03-28 19:05:02 +02:00
Hans Leidekker
3f1e3008ea msi: Clear the cert pointer in MsiGetFileSignatureInformation. 2012-03-28 17:37:44 +02:00
Hans Leidekker
d351a9999e msi: Also set the Intel property on 64-bit processors. 2012-03-28 17:37:41 +02:00
Andoni Morales Alastruey
342fcb6198 msi: Implement MSIMODIFY_MERGE function in TABLE_modify. 2012-03-28 11:44:52 +02:00
Hans Leidekker
280af52666 msi: Mask off modifiers before setting the UILevel property.
Spotted by Aric Stewart.
2012-03-26 18:15:03 +02:00
Hans Leidekker
9b2b760ea9 msi: Get the UI level from the global variable instead of the property. 2012-03-26 18:15:03 +02:00
André Hentschel
c000cbaf49 msi: Allow ARM installations. 2012-03-26 12:41:27 +02:00
Hans Leidekker
45a62d53b6 msi: Restrict the match on files from cabinets to files that have not been installed. 2012-03-16 16:27:38 +01:00
Hans Leidekker
c98bf1b57b msi: Fix deleting services on installation.
Based on a patch by Berhard Loos.
2012-03-13 13:30:11 +01:00
Hans Leidekker
fa2420d696 msi: Perform a case insensitive match on filenames from cabinets. 2012-03-12 16:37:24 +01:00
Hans Leidekker
0f40d2624d msi: Reimplement MsiEnumProducts on top of MsiEnumProductsEx. 2012-03-12 16:37:24 +01:00
Hans Leidekker
a4c20dc437 msi: Implement MsiEnumProductsEx. 2012-03-12 16:37:23 +01:00
Hans Leidekker
531cab9feb msi: Deformat the description field of INSTALLMESSAGE_ACTIONDATA messages. 2012-03-12 16:37:22 +01:00
Hans Leidekker
98c621c1bf msi: Use the return value of IXMLDOMNode_get_text (clang). 2012-02-06 10:19:37 -06:00
Hans Leidekker
bb0b467366 msi: Avoid a null pointer dereference in MsiGetFileVersionW (clang). 2012-02-06 10:19:30 -06:00
Hans Leidekker
bca0fd6a55 msi: Follow the parent state for preselected features unless the parent is an advertised feature. 2012-02-05 09:38:12 -06:00
Stefan Leichter
f3caa76846 msi: Update version resource. 2012-01-30 20:44:49 +01:00
Frédéric Delanoy
ca4fdc57ed msi: Avoid dead code in parse_prop (Coverity). 2012-01-30 11:59:44 +01:00
Frédéric Delanoy
8ef373a7f2 msi: Avoid dead code in parse_prop (Coverity). 2012-01-25 11:24:58 +01:00
Hans Leidekker
c8e8f44168 msi: Use the column count specified in the table transform data.
It can be smaller than the number of columns found in the table meta data.
2012-01-24 16:57:32 +01:00
Francois Gouget
47f45d793d Use a single space after a full stop to follow the Windows GUI guidelines. 2012-01-23 16:07:03 +01:00
Hans Leidekker
fcce720a2f msi: Don't evaluate msidbFeatureAttributesFollowParent when features are preselected. 2012-01-23 15:59:54 +01:00
Hans Leidekker
09a49fd784 msi: Pass the file identifier instead of the filename in action data for SelfRegModules/SelfUnregModules. 2012-01-20 16:01:48 +01:00
Hans Leidekker
d20c69c54d msi: Don't parse the format string when building the shortcut target path.
It's no longer necessary because target paths are always normalized.
2012-01-19 21:08:51 +01:00
Hans Leidekker
9336c10619 msi: Make sure target paths are normalized.
Fix for the Lotus Notes 6.5.1 installer.
2012-01-18 16:25:21 +01:00
Nikolay Sivov
3b60c2c0d1 msi: Support test for aplicable patch of MSIPATCH_DATATYPE_XMLPATH type. 2012-01-18 12:37:37 +01:00
Nikolay Sivov
123eba2801 msi: Support MSIPATCH_DATATYPE_XMLBLOB when testing for applicable patch. 2012-01-18 12:37:37 +01:00
Nikolay Sivov
5cbe5faf49 msi: Create the rest of objects with separate helpers. 2012-01-17 19:13:55 +01:00
Nikolay Sivov
576aa0e6d0 msi: Use data table for dispid tests. 2012-01-16 13:13:23 +01:00
Nikolay Sivov
8a012ff4f7 msi: Implement list on top of general object. 2012-01-16 13:13:13 +01:00
Nikolay Sivov
07058e0068 msi: Add a helper to create database object. 2012-01-16 13:12:51 +01:00
Nikolay Sivov
ff3ed0e5ea msi: Add null terminator to typelib name. 2012-01-16 13:12:41 +01:00
Nikolay Sivov
b79311b175 msi: Create installer object initializing automation object data. 2012-01-16 13:12:25 +01:00
Nikolay Sivov
9505a1bf28 msi: Implement session object directly on top of automation object. 2012-01-16 13:12:14 +01:00
Nikolay Sivov
9687c29cc5 msi: COM cleanup for automation object implementation. 2012-01-16 13:11:28 +01:00
Hans Leidekker
bc801f85be msi: Set the SourceDir and SOURCEDIR properties in MsiGetSourcePath. 2012-01-16 12:45:34 +01:00
Hans Leidekker
4ef765cb4e msi: Don't try to ready media for files from a previous installation or files that will be skipped. 2012-01-10 18:29:05 +01:00
Hans Leidekker
c7e5f0331f msi: Downgrade an error. 2012-01-10 18:29:04 +01:00
Hans Leidekker
b13195ce4e msi: Fix detection of installed global assemblies. 2012-01-10 18:29:04 +01:00
Hans Leidekker
b00e7039c5 msi: Execute custom actions in the right script. 2012-01-06 21:57:40 +01:00
Hans Leidekker
de11a50b91 msi: Don't crash on secondary root folders in msi_resolve_target_folder. 2012-01-05 20:54:25 +01:00
Hans Leidekker
2a19021610 msi: VolumeLabel and DiskPrompt are optional fields in the Media table. 2012-01-03 18:07:15 +01:00
Hans Leidekker
4def593456 msi: Accept a missing left backquote in SQL identifiers. 2012-01-03 18:07:08 +01:00
Hans Leidekker
ca49aae61e msi: Fix handling of single quoted column names in SELECT queries. 2011-12-23 15:12:18 +01:00
Hans Leidekker
bde25b2cb4 msi: Use a common function to validate a product ID. 2011-12-23 15:12:11 +01:00
Hans Leidekker
ad4f747fa6 msi: Fix changing media for normal files. 2011-12-23 15:12:06 +01:00
Hans Leidekker
8cc5561fbf msi: Don't run the rollback script in reinstall mode. 2011-12-13 18:59:15 +01:00
Hans Leidekker
8a5c700d78 msi: Pass REINSTALL and REINSTALLMODE properties on the command line in MsiReinstallFeatureW. 2011-12-13 18:59:14 +01:00
Hans Leidekker
12e106613a msi: Don't set the LOGVERBOSE property in MsiReinstallFeatureW. 2011-12-13 18:59:14 +01:00
Hans Leidekker
1f56b60cc4 msi: Don't set the Installed property in MsiReinstallFeatureW.
This property will be set later.
2011-12-13 18:59:13 +01:00
Hans Leidekker
00477d601e msi: Support all install contexts in MsiReinstallFeatureW. 2011-12-13 18:59:13 +01:00
Hans Leidekker
973e86b844 msi: Move some traces from implementations to entry points. 2011-12-13 18:59:12 +01:00
Hans Leidekker
0f3eb5f689 msi: Format the value name from the RegLocator table. 2011-12-12 15:50:39 +01:00
Hans Leidekker
75242afefd msi/tests: Try harder to remove a shortcut file. 2011-12-06 15:51:01 +01:00
Hans Leidekker
cd4432bc9b msi: Make sure to keep a reference to custom action data until the actions are finished. 2011-12-06 15:51:00 +01:00
Hans Leidekker
39b7e6e50c msi: Resolve the target folder if necessary in msi_get_target_folder. 2011-12-01 14:18:22 +01:00
Hans Leidekker
959ebdb118 msi: Split up delete_reg_key_or_value. 2011-12-01 14:18:14 +01:00
Francois Gouget
51a256e65f Assorted spelling fixes and wording tweaks. 2011-11-28 16:40:50 +01:00
Hans Leidekker
3ad3a184d5 msi: Perform a case insensitive match on the volume label. 2011-11-22 12:43:59 +01:00
Francois Gouget
7238a78805 msi: Delete the handle static critical sections when unloading the dll. 2011-11-17 11:37:49 +01:00
Hans Leidekker
a100550383 msi: Trace the exit code from custom action processes. 2011-11-14 13:10:19 +01:00
Hans Leidekker
353016f92f msi: Process messages while waiting for custom actions to complete. 2011-11-14 13:10:19 +01:00
Andrew Talbot
3358b541ac msi: Remove extraneous braces from switch statement. 2011-11-07 11:53:56 +01:00