Hans Leidekker
bd634c0491
msi: Set/unset the SourceDir property at the right stage in the execution sequence.
2010-07-23 11:46:01 +02:00
Hans Leidekker
ad971803da
msi: Never defer standard actions.
2010-07-23 11:45:49 +02:00
Hans Leidekker
06afeec2a5
msi: Make sure properties are updated after applying a patch.
2010-07-22 16:09:09 +02:00
Hans Leidekker
424e3a9fb8
msi: Move the component enabled check into the standard actions.
2010-07-21 13:24:00 +02:00
Hans Leidekker
568c7c198c
msi: Set feature states to the installed state if the Preselected property is not set.
2010-07-21 13:24:00 +02:00
Hans Leidekker
c9fb24927d
msi: Publish patches regardless of any features being installed locally.
2010-07-21 13:24:00 +02:00
Hans Leidekker
b87271150a
msi: Unpublish the product after running all the actions.
2010-07-20 16:29:45 +02:00
Hans Leidekker
f7aa88fe7d
msi: Store the patch state in the registry.
2010-07-20 16:29:45 +02:00
Hans Leidekker
15f5b9dca3
msi: Compare file versions as numbers instead of strings.
2010-06-11 15:54:24 +02:00
Hans Leidekker
b8ac327e7e
msi: Display the directory identifier instead of the full path in standard actions.
2010-06-09 16:15:52 +02:00
Hans Leidekker
dcb501decd
msi: Create directories right before installing files.
2010-06-09 16:12:44 +02:00
Hans Leidekker
35a0461baa
msi: Improve parsing of patch summary information.
2010-05-31 12:46:08 +02:00
Hans Leidekker
d17ebc4032
msi: Advance to the right cabinet in ACTION_MsiPublishAssemblies.
2010-05-31 12:46:08 +02:00
Hans Leidekker
376c2fd02b
msi: Store the disk id in the MSIFILE structure.
2010-05-12 18:46:28 +02:00
Hans Leidekker
dd305c3700
msi: Set the SourceDir property to the registered source if the product is installed.
2010-05-11 16:28:18 +02:00
Hans Leidekker
41a7f025e4
msi: Avoid A->W conversions in msi_publish_install_properties.
2010-05-11 16:28:12 +02:00
Hans Leidekker
347bb13fc7
msi: Set install properties just once.
2010-05-11 16:28:07 +02:00
Hans Leidekker
82d7b04c2c
msi: Apply registered patches in MsiOpenPackage.
2010-05-05 15:27:12 +02:00
Hans Leidekker
920fc345ba
msi: Register more patch details.
2010-05-04 13:15:00 +02:00
Hans Leidekker
23eabb44c8
msi: Make a local copy of patch packages.
2010-05-04 13:15:00 +02:00
Hans Leidekker
162780d112
msi: Support multiple patches per package.
2010-04-29 10:19:40 -05:00
Hans Leidekker
df6b195a1a
msi: Simplify msi_set_context.
2010-04-29 10:19:40 -05:00
Hans Leidekker
c6f281fcf7
msi: Make sure to only open a patch database in msi_apply_patch_package.
2010-04-29 10:19:40 -05:00
Hans Leidekker
82fdc926a2
msi: Move all file comparisons to CostFinalize.
...
File costing can't be done correctly on upgrades unless we know
which files are going to be overwritten.
2010-04-28 15:04:40 -05:00
Hans Leidekker
9af488d236
msi: Always evaluate component conditions.
...
Fixes a regression caused by 0d770c96fe
.
2010-04-28 15:04:40 -05:00
Hans Leidekker
e31ee69f37
msi: Rename MSI_GetPropertyW and MSI_SetPropertyW.
...
For consistency with related functions msi_dup_property and msi_get_property_int
and because there is no ANSI version of these functions.
2010-04-21 11:57:33 +02:00
Hans Leidekker
44b7983913
msi: Make MSI_SetPropertyW take a pointer to a database instead of a package.
2010-04-21 11:57:33 +02:00
Hans Leidekker
186f4efa3f
msi: Make msi_get_property_int and friends take a pointer to a database instead of a package.
...
They only operate on a database and this way we can use them before a package is created.
2010-04-21 11:57:33 +02:00
Hans Leidekker
9a9faeffd8
msi: Don't assume unversioned files are present.
2010-04-19 14:57:43 +02:00
Hans Leidekker
33299faae4
msi: Move application of substorage transforms out of msi_parse_patch_summary.
2010-04-13 11:48:30 +02:00
Hans Leidekker
bcc0ad9b07
msi: Release summary information on error in msi_parse_patch_summary.
2010-04-13 11:48:25 +02:00
Hans Leidekker
3050cde95e
msi: Implement the UnregisterMIMEInfo standard action.
2010-04-02 15:22:49 +02:00
Hans Leidekker
17d7effd2a
msi: Implement the UnregisterExtensionInfo standard action.
2010-04-02 15:22:49 +02:00
Hans Leidekker
3bdfa1f624
msi: Implement the UnregisterProgIdInfo standard action.
2010-04-02 15:22:48 +02:00
Hans Leidekker
843968c056
msi: Implement the UnregisterClassInfo standard action.
2010-04-02 15:22:47 +02:00
Mikhail Maroukhine
86f76d2b48
msi: Fix compiler warnings with flag -Wcast-qual.
2010-03-29 12:14:44 +02:00
Mikhail Maroukhine
f930c87fd6
objbase.h: CLSIDFromString: Add constness to the parameters declaration in accordance with MSDN.
2010-03-29 12:11:02 +02:00
Hans Leidekker
5a08c9ed6f
msi: Improve the SetODBCFolders action stub.
2010-03-26 15:35:37 +01:00
Hans Leidekker
129161fec5
msi: Update the UI in the StartServices and StopServices actions.
2010-03-26 15:35:17 +01:00
Hans Leidekker
d0856c0ac5
msi: Display REG_EXPAND_SZ values too in the WriteRegistryValues action.
2010-03-23 13:24:26 +01:00
Hans Leidekker
18a85caa3c
msi: Update the UI in the UnpublishFeatures action.
2010-03-23 13:24:26 +01:00
Hans Leidekker
27e90274b5
msi: Set the action taken in the ProcessComponents and InstallFiles actions.
2010-03-23 13:24:26 +01:00
Hans Leidekker
8722d0c44a
msi: The AppSearch and CCPSearch actions must be run only once.
2010-03-23 13:24:26 +01:00
Hans Leidekker
a4be941df9
msi: Display the file identifier instead of the filename in the SelfRegModules and SelfUnregModules actions.
2010-03-23 13:24:26 +01:00
Hans Leidekker
ab9a181326
msi: Update the UI in the RegisterUser action.
2010-03-05 13:14:41 +01:00
Hans Leidekker
4341f18c7e
msi: Update the UI in the RegisterProduct action.
2010-03-05 13:14:36 +01:00
Hans Leidekker
c547fb3629
msi: Display the product code in the PublishProduct action.
2010-03-05 13:14:32 +01:00
Hans Leidekker
e90fbf09c7
msi: Update the UI in the MsiPublishAssemblies action.
2010-03-05 13:14:27 +01:00
Hans Leidekker
a358c7f6d4
msi: Update the UI in the MoveFiles action.
2010-03-05 13:14:23 +01:00
Hans Leidekker
aba6afc85e
msi: Move the implementation of the MoveFiles action to files.c.
2010-03-05 13:14:19 +01:00
Hans Leidekker
a5549305de
msi: Update the UI in the RemoveODBC action.
2010-03-05 13:14:11 +01:00
Hans Leidekker
eff0503f64
msi: Update the UI in the InstallODBC action.
2010-03-05 13:14:06 +01:00
Hans Leidekker
3c36d9d1f9
msi: Update the UI in the DeleteServices action.
2010-03-05 13:13:52 +01:00
Hans Leidekker
a70d86d3c9
msi: Display directory identifier instead of the full path in the CreateFolders action.
2010-03-05 13:13:47 +01:00
Hans Leidekker
31d0664ebd
msi: Update the UI in the AllocateRegistrySpace action.
2010-03-05 13:13:37 +01:00
Hans Leidekker
353035fadd
msi: Initialize a couple of variables.
...
Found by Valgrind.
2010-03-04 12:30:29 +01:00
Hans Leidekker
f62211198a
msi: Implement the RemoveEnvironmentStrings standard action.
2010-03-03 15:23:23 +01:00
Hans Leidekker
b891d0888a
msi: Implement the RemoveIniValues standard action.
2010-03-02 16:12:17 +01:00
Hans Leidekker
6c6b2a7a18
msi: Look at the requested action when publishing assemblies, not the action taken.
2010-03-02 16:11:53 +01:00
Hans Leidekker
ff3ed5f051
msi: Look at the requested action when moving files, not the action taken.
2010-03-02 16:11:49 +01:00
Hans Leidekker
c13d84fffc
msi: Look at the requested action when deleting services, not the action taken.
2010-03-02 16:11:44 +01:00
Hans Leidekker
2d3676d912
msi: Look at the requested action when stopping services, not the action taken.
2010-03-02 16:11:40 +01:00
Hans Leidekker
87448dcaeb
msi: Look at the requested action when installing services, not the action taken.
2010-03-02 16:11:36 +01:00
Hans Leidekker
c8308ef99d
msi: Only create environment strings when the component is set to be installed.
2010-03-02 16:11:31 +01:00
Hans Leidekker
a64372ca44
msi: Improve a trace.
2010-03-02 16:11:24 +01:00
Hans Leidekker
930b5e1c68
msi: The table for isolated components is called IsolatedComponent.
2010-02-26 14:20:53 +01:00
Hans Leidekker
342f866044
msi: Implement the RemoveRegistryValues standard action.
2010-02-25 16:00:51 +01:00
Hans Leidekker
253a7fa73c
msi: Implement the RemoveDuplicateFiles standard action.
2010-02-23 13:31:01 +01:00
Hans Leidekker
587e107398
msi: Allocate sufficient memory in ITERATE_InstallODBCDriver and ITERATE_InstallODBCTranslator.
...
Found by Valgrind.
2010-02-22 13:15:22 +01:00
Hans Leidekker
0f0e81d14a
msi: Implement the UnpublishComponents standard action.
2010-02-17 10:57:40 +01:00
Hans Leidekker
d95e3eb4d2
msi: PublishComponents must look at the requested install state of the feature, not the component.
2010-02-17 10:57:35 +01:00
Hans Leidekker
9cbb80d984
msi: Only run the CreateFolder and RemoveFolder actions when the component is set to be installed or removed, respectively.
2010-02-16 12:29:08 +01:00
Hans Leidekker
c32d9d7004
msi: Get rid of ACTION_VerifyFeatureForAction.
2010-02-16 12:29:01 +01:00
Hans Leidekker
598c542607
msi: Get rid of ACTION_VerifyComponentForAction.
2010-02-16 12:28:56 +01:00
Hans Leidekker
54391a11c0
msi: Update the UI when registering or unregistering type libraries.
2010-02-16 12:28:48 +01:00
Hans Leidekker
2276c291fc
msi: Implement the RemoveShortcuts standard action.
2010-02-15 12:20:02 +01:00
Hans Leidekker
f7879b43d5
msi: Fix a memory leak in ITERATE_StartService.
...
Found by Valgrind.
2010-02-12 14:49:38 +01:00
Hans Leidekker
82d50fa675
msi: Return the right error from ITERATE_RegisterTypeLibraries.
2010-02-12 14:49:38 +01:00
Hans Leidekker
98761037ab
msi: Implement the UnregisterTypeLibraries standard action.
2010-02-12 14:49:38 +01:00
Hans Leidekker
28bf8e1f0d
msi: Implement the RemoveODBC standard action.
2010-02-11 14:38:45 +01:00
Hans Leidekker
2568e5ec65
msi: Make sure attrs variable is properly double nul-terminated in ITERATE_InstallODBCDataSource.
2010-02-11 14:38:45 +01:00
Hans Leidekker
4742dfba98
msi: The File_Setup field in the ODBCDriver and ODBCTranslator tables is optional.
2010-02-11 14:38:45 +01:00
Hans Leidekker
068cb1291b
msi: Add a partial implementation of the ValidateProductID standard action.
2010-02-10 14:31:49 +01:00
Hans Leidekker
7331b3ca98
msi: Implement the UnregisterFonts standard action.
2010-02-10 14:31:15 +01:00
Hans Leidekker
5df62d0c42
msi: Add stub implementations of the DisableRollback and InstallAdminPackage standard actions.
2010-02-10 14:31:05 +01:00
Hans Leidekker
f5af1ca399
msi: Implement the SelfUnregModules standard action.
2010-02-05 15:33:11 +01:00
Hans Leidekker
3864ddf9f2
msi: Implement the RemoveFolders standard action.
2010-02-05 15:33:05 +01:00
Hans Leidekker
b9da31f112
msi: Implement the DeleteServices standard action.
2010-02-04 13:39:29 +01:00
Hans Leidekker
29f47299c2
msi: Implement the ScheduleReboot standard action.
2010-02-03 11:31:48 +01:00
Hans Leidekker
552a9c9b85
msi: Add a stub implementation of the SetODBCFolders standard action.
2010-02-03 11:31:48 +01:00
Hans Leidekker
246f9305e9
msi: Don't fail if the service to start is already running.
2010-02-01 12:11:18 +01:00
Hans Leidekker
1d0db2b19b
msi: Don't create all directories in the CreateFolders action.
...
The CreatFolders action should create only the directories listed in the
CreateFolder table, the rest will be created during the InstallFiles action.
Fixes the EndNote 8 installer.
2010-01-28 15:30:26 +01:00
Hans Leidekker
aa19638cb9
msi: Improve some traces.
2010-01-28 15:30:25 +01:00
Hans Leidekker
7c9cb1e1be
msi: Name and arguments in the service control table are formatted strings.
2010-01-28 15:30:25 +01:00
Hans Leidekker
0d770c96fe
msi: Don't evaluate the condition table when there are overrides.
2010-01-27 18:46:08 +01:00
Jason Edmeades
06c45a8d59
msi: Correct the setting of environment variables.
...
Contrary to the MSDN, you can 'create only' whilst using a previous value
(ie +-variable and [~];value). This breaks the install of an application
I was debugging who uses that throughout for all their variables. In
addition whilst adding some tests I've also cleaned up invalid prefix
syntax handling and semicolon removal if the original string is empty.
2010-01-20 15:34:19 +01:00
Hans Leidekker
2bfce6cfdc
msi: Fix parsing of feature overrides.
2010-01-18 14:39:23 +01:00
Marcus Meissner
e2f7946bbc
msi: Removed unnecessary NULL check.
2009-12-22 13:48:26 +01:00
James Hawkins
26d541b2a9
msi: Initialize type. If the value did not exist, type was uninitialized and passed to RegSetValueExW.
2009-12-17 13:09:46 +01:00
James Hawkins
1b7238a969
msi: Simplify ITERATE_WriteEnvironmentString.
...
Now we only allocate enough memory to exactly match the size of the
constructed string. Before, we were leaving some memory uninitialized
and overwriting the allocated memory in certain circum.
2009-12-16 12:27:11 +01:00
James Hawkins
d90aca35c4
msi: Add a NULL terminator to file->dest after reallocation.
2009-12-08 12:36:51 +01:00
Hans Leidekker
bd4bc16147
msi: Don't set the ALLUSERS property.
2009-11-17 16:05:27 +01:00
Hans Leidekker
e52531ab1d
msi: Handle environment strings without a value.
2009-11-13 12:21:46 +01:00
Hans Leidekker
a15e6cbb1a
msi: Avoid accessing uninitialized memory.
...
Found by valgrind.
2009-10-21 17:05:54 +02:00
Hans Leidekker
8dd3d389b0
msi: Create the local copy before opening the database.
2009-10-20 14:39:55 +02:00
Hans Leidekker
b7a81df452
msi: Allocate MSISCRIPT structure at package creation time.
2009-10-19 15:02:36 +02:00
Hans Leidekker
a187b43ddd
msi: Eliminate the last parameter from ACTION_PerformActionSequence.
2009-10-15 14:17:24 +02:00
Hans Leidekker
e3aa2f33d9
msi: Use a function to test the UI level instead of passing a boolean around.
2009-10-15 14:17:18 +02:00
Hans Leidekker
796eed1dc7
msi: Reorder functions to avoid forward declarations.
2009-10-15 14:17:06 +02:00
Hans Leidekker
843382f284
msi: Define common strings only once.
2009-10-15 14:16:50 +02:00
Hans Leidekker
9c8b83ce01
msi: Schedule a rename operation when the file to overwrite is in use.
2009-10-01 12:04:02 +02:00
Hans Leidekker
659768e203
msi: Set or override a user environment string when there is no prefix.
2009-09-16 12:57:33 -05:00
Hans Leidekker
dd1ca6ca5e
msi: Ignore CoInitialize failure in ACTION_CreateShortcuts.
2009-09-10 22:32:13 +02:00
Hans Leidekker
05e9a1fce8
msi: Add a partial implementation of MsiDetermineApplicablePatchesW.
2009-09-02 14:41:31 +02:00
Hans Leidekker
1169aa9a58
msi: Set REINSTALL property when the product is already installed and the command line is empty.
2009-09-02 14:41:24 +02:00
Hans Leidekker
7d837b9f82
msi: The assembly file version field is optional.
2009-05-29 15:35:59 +02:00
Hans Leidekker
965698cd28
msi: Don't publish package name as part of product properties.
...
This value does not exist directly under the product key on Windows.
2009-03-31 12:41:36 +02:00
Hans Leidekker
9c6e6efa32
msi: Detect privately installed assemblies.
...
Another fix for the office 2007 sp1 installer.
2009-03-25 15:02:45 +01:00
Hans Leidekker
86af876987
msi: Only apply a transform when its language id matches the system language id.
...
Fix for office 2007 sp1 installer.
2009-03-24 13:32:11 +01:00
James Hawkins
c965d839f9
msi: Allow the enumeration of other users' patches.
2009-03-23 15:52:17 +01:00
Hans Leidekker
4da865f324
msi: Handle ADVERTISE overrides.
2009-03-13 13:21:07 +01:00
Hans Leidekker
40cfbaf023
msi: Fix handling of REINSTALL overrides.
...
We were forcing features with a REINSTALL override to be reinstalled
locally, which is only correct if the original install state is local.
This causes problems with the office 2007 sp1 installer, which applies
a REINSTALL override to an advertised feature.
2009-03-12 14:29:56 +01:00
Hans Leidekker
18cd216e80
msi: Don't release view object twice in check_assembly_installed.
2009-02-19 16:17:17 +01:00
Hans Leidekker
43094e4a3e
msi: Make comparison of assembly field names case insensistive.
2009-02-19 16:17:17 +01:00
Michael Stefaniuc
5f3ac30b3c
msi: Remove superfluous pointer casts.
2009-01-15 12:43:03 +01:00
James Hawkins
c059ceb5b0
msi: Set the property specified by the Source attribute of the Media table when applying a patch.
2008-12-15 12:34:56 +01:00
James Hawkins
01eb930005
msi: Publish the patch information.
2008-12-15 12:34:52 +01:00
James Hawkins
b5e3e19a19
msi: Add the ability to query a specific context for install properties.
2008-12-15 12:34:18 +01:00
James Hawkins
4a9f6995aa
msi: Add the ability to query a specific context for a product key.
2008-12-15 12:34:06 +01:00
James Hawkins
a9e0290934
msi: Add the ability to delete multiple users' component keys.
2008-12-09 10:28:14 +01:00
James Hawkins
98c703ab87
msi: Add the ability to open multiple users' install properties key.
2008-12-09 10:27:52 +01:00
James Hawkins
b198f4f23f
msi: Add the ability to open multiple users' component keys.
2008-12-09 10:27:45 +01:00
James Hawkins
930b429d1e
msi: Add the ability to open multiple users product keys.
2008-12-09 10:27:37 +01:00
James Hawkins
e3074348fc
msi: Factor out the code to open the UserData features key.
2008-11-04 11:24:11 +01:00
James Hawkins
0c01c586c7
msi: Factor out the code to open the features key.
2008-11-04 11:24:04 +01:00
James Hawkins
70be1e7746
msi: Factor out the code to open a product key.
2008-11-04 11:23:51 +01:00
James Hawkins
ca71e5aff0
msi: Allow private properties from the AdminProperties property list.
2008-10-30 11:47:10 +01:00
James Hawkins
019f4af1c2
msi: Do not reinstall an assembly that already exists in the global assembly cache.
2008-10-29 13:29:32 +01:00
James Hawkins
2ffa433f80
msi: Convert command line property names to uppercase.
2008-10-27 12:02:13 +01:00
James Hawkins
bf9538f383
msi: Use the long file name in the WriteIniValues action.
2008-10-27 12:02:04 +01:00
James Hawkins
f80b5f6e66
msi: All files are uncompressed in an administrative image.
2008-10-17 11:44:21 +02:00
Michael Stefaniuc
704ebf280e
msi: Use the right FAILED/SUCCEEDED macro instead of negating the opposite.
2008-10-08 13:43:17 +02:00
James Hawkins
d15fddf6f5
msi: Resolve file source paths dynamically, as the source directory can be changed.
2008-10-07 12:13:33 +02:00
Rob Shearman
ef1b0cacfa
msi: Reduce destination file name used in the MoveFiles action to the long file name.
...
Add a test for this behaviour.
2008-09-10 12:08:52 +02:00
Andrew Talbot
be759dddb8
msi: Uninitialized variable fix (Coverity).
2008-09-10 10:41:54 +02:00
James Hawkins
3f00006f1f
msi: Source for new patch files can only be compressed.
2008-09-04 11:52:21 +02:00
James Hawkins
3bec162d51
msi: Skip the component action detection logic if there is no product code.
2008-08-25 11:40:38 +02:00
James Hawkins
d596ae29d8
msi: Skip the feature action detection logic if there is no product code.
2008-08-25 11:40:30 +02:00
James Hawkins
c855fbfcd8
msi: Don't install a feature that is disabled.
2008-08-25 11:40:22 +02:00
James Hawkins
4553d0fd47
msi: Remove an invalid setting of the install state.
2008-08-21 11:44:13 +02:00