Commit Graph

380 Commits

Author SHA1 Message Date
James Hawkins c507543554 msi: Set the SourceDir and SOURCEDIR properties in the ResolveSource action. 2006-10-11 12:09:54 +02:00
Mike McCormack 80affb3c2d msi: Merge action.h into msipriv.h. 2006-10-10 16:12:12 +02:00
James Hawkins 563a50ab35 msi: Make internal functions static. 2006-10-09 14:40:08 +02:00
Mike McCormack f1d4646a49 msi: Win64 printf format warning fixes. 2006-10-05 11:32:32 +02:00
James Hawkins bbd4d1e3ef msi: If the feature linked to a component has a state of INSTALLSTATE_UNKNOWN, the component's state should match. 2006-09-26 21:56:05 +02:00
James Hawkins 545d0e70cf msi: Disable child features of parent features that are unselected because of the install level. 2006-09-21 13:03:32 +02:00
James Hawkins 32f570222b msi: Don't check a component's install state if a component ID is not provided. 2006-09-21 13:02:00 +02:00
James Hawkins d893cb7d1e msi: Load the component states in CostFinalize instead of CostInitialize. 2006-09-21 13:01:33 +02:00
James Hawkins ca5c11009d msi: Initialize all features' action states to INSTALLSTATE_UNKNOWN. 2006-09-21 13:01:18 +02:00
James Hawkins 937b9b2bbc msi: Only override a feature whose action state is INSTALLSTATE_SOURCE. 2006-09-21 13:01:10 +02:00
Andrew Talbot 2e372c08b5 msi: Cast-qual warnings fix. 2006-09-20 20:02:48 +02:00
Mike McCormack 4fa08a638c msi: Split the font registration code out into a separate file. 2006-09-13 11:42:35 +02:00
Mike McCormack 5f83069bd8 msi: Split code to create a random package name into a separate function. 2006-09-08 12:44:39 +02:00
Dan Kegel 337e1e202f msi: Callers of alloc_msihandle should handle failure. 2006-08-29 12:21:54 +02:00
James Hawkins 3cb82ab8d2 msi: If a component's state is not local, source, or default, default to the local state. 2006-08-12 11:39:58 +02:00
James Hawkins f84fa0ce63 msi: Fix the compressed files logic.
If the compressed file attribute is not set, use the Word Count
property to determine if files are compressed.
2006-08-08 19:34:34 +02:00
Robert Shearman ab378803ef msi: Fix the creation of shortcuts with a null icon index by mapping it to zero. 2006-08-03 22:23:09 +02:00
James Hawkins 7edea0cc68 msi: Set the install state to INSTALLSTATE_LOCAL for features with compressed files. 2006-08-02 11:42:20 +02:00
James Hawkins 38f2ba23f1 msi: Fix a couple install state test cases.
- Correctly handle the msidbComponentAttributesOptional component attribute.
- Don't set a component's state to INSTALLSTATE_LOCAL if the
  msidbComponentAttributesSourceOnly attribute is provided.
2006-08-01 10:49:20 +02:00
James Hawkins 98d1486410 msi: Set the install state to INSTALLSTATE_LOCAL for components with compressed files. 2006-07-31 21:36:19 +02:00
Mike McCormack 43f7f3ec3f msi: Don't set the shortcut's working directory if it's NULL. 2006-07-28 12:32:17 +02:00
Mike McCormack 1d46cdf11a msi: Always load all the components. 2006-07-26 10:23:34 +02:00
James Hawkins cae3215a6f msi: Set the component's initial state based on its attributes. 2006-07-21 20:22:27 +02:00
James Hawkins 7bcac31dcf msi: Update feature states after changing install levels, as they may have changed. 2006-07-20 12:50:14 +02:00
James Hawkins 7c7f0bb2c1 msi: Rename SetFeatureStates to match the naming scheme of internal msi functions. 2006-07-20 12:50:02 +02:00
Mike McCormack 9a9195d6e4 msi: Only load the features and files tables once. 2006-07-19 18:15:21 +02:00
James Hawkins 2396e2a59f msi: Sort SelectionTree items by their Display value. 2006-07-19 09:46:31 +02:00
Mike McCormack 2ec80faabe msi: Move msi_get_property_int() to helpers.c 2006-07-17 14:46:25 +02:00
Mike McCormack 230af9d21f msi: Move version string conversions to registry.c. 2006-07-14 13:32:39 +02:00
James Hawkins a1910e11bb msi: Fix handling of the no-op identifier in the Directory table. 2006-06-21 13:53:51 +02:00
Alexandre Julliard b79a53e959 msi: Make some variables static and/or const. 2006-06-12 13:39:59 +02:00
Mike McCormack ea3ab4952b msi: Remove some unnecessary NULL checks. 2006-06-09 15:20:14 +02:00
Mike McCormack 2acf800fd4 msi: Fix some pointer to integer casts. 2006-05-25 10:44:44 +02:00
Mike McCormack 20c5746649 msi: Fix a possible memory leak. 2006-05-24 10:52:33 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Labrousse Jean d0862c365b msi: Fix short name and long name mismatch in action.c. 2006-05-23 13:03:57 +02:00
Francois Gouget e739ba9551 Assorted spelling fixes. 2006-05-15 15:05:05 +02:00
Mike McCormack 3a94011ab6 msi: Clean up memset usage. 2006-04-18 21:13:52 +02:00
Mike McCormack 886036696a msi: Add stub for the RegisterComPlus and UnregisterComPlus actions. 2006-03-22 21:36:20 +01:00
Mike McCormack c1513be48c msi: Improve handling of short paths. 2006-03-21 16:19:07 +01:00
Mike McCormack fe8cd38812 msi: Remove some unnecessary indent. 2006-03-09 12:50:59 +01:00
Robert Shearman 4ac8567497 msi: Fix heap overflow in ITERATE_CreateShortcuts. 2006-02-22 22:15:54 +01:00
Robert Shearman d679bc5ab3 msi: Move the firing of control events to MSI_ProcessMessage.
Move the firing of control events from internal helper functions to
MSI_ProcessMessage so that custom actions can all cause control events
to be fired.
Added the firing of progress events.
2006-01-23 17:30:31 +01:00
Robert Shearman d2e48e01ac msi: Call ui_actiondata for more actions. 2006-01-23 17:29:50 +01:00
Mike McCormack 477bce38dc msi: Eliminate a fixed length buffer. 2006-01-16 20:38:28 +01:00
Mike McCormack aa81e4fa68 msi: Don't crash if there's no script present when we try execute one. 2006-01-10 12:09:19 +01:00
Mike McCormack e534e7726b msi: Apply any MSI transforms specified by the TRANSFORMS property. 2006-01-04 14:51:25 +01:00
Mike McCormack b7270b8c2d msi: Change some FIXME messages to comments. 2005-12-31 13:18:11 +01:00
Mike McCormack f24a9e2a24 msi: Add stub actions for CCPSearch and RMCCPSearch. 2005-12-31 13:14:23 +01:00
Francois Gouget 0edbaf7e80 Remove spaces before '\n' in traces. 2005-11-10 12:14:56 +00:00
Ivan Leo Puoti 5b22e4d6ef Fix some wrong prototypes. 2005-11-03 11:35:11 +00:00
Mike McCormack a977b2c346 Remove some redundant null pointer checks. 2005-11-03 09:56:29 +00:00
Aric Stewart d5655f90cf Force files to install if the REINSTALL property is set. 2005-11-02 14:21:17 +00:00
Mike McCormack fd4a2003db Implement the RemoveFiles action. 2005-11-02 11:42:56 +00:00
Mike McCormack dded8fb7a8 Use an enumeration for file states. 2005-11-02 10:56:42 +00:00
Mike McCormack 559427023f Add a stub for the AllocateRegistrySpace action. 2005-10-30 19:23:28 +00:00
Mike McCormack ec5edeebf4 Define MSIDBOPEN_ constants using LPCWSTR when compiling Wine. 2005-10-30 19:21:51 +00:00
Mike McCormack 9293f869cc Use msi_get_property_int() in a few more places. 2005-10-30 19:16:45 +00:00
Mike McCormack 9ba8ba30bb Use "static const" rather than "const static" as gcc -W complains
about the former.
2005-10-30 19:04:26 +00:00
Mike McCormack 991bae1409 Don't change the UI level during ExecuteAction. 2005-10-29 11:40:03 +00:00
Mike McCormack d693f461ba Remove the unused 1st parameter of ACTION_VerifyComponentForAction. 2005-10-29 11:36:48 +00:00
Mike McCormack 9c8458514c Some installers don't call the CreateFolders action before the
InstallFiles action as MSDN specifies, but it still seems to work, so
make sure that we create component directories in the InstallFiles
action anyway.
2005-10-29 11:29:17 +00:00
Thomas Weidenmueller 561f2f0399 Passing NULL as the last two parameters to ReadFile is illegal and
actually causes a crash on windows. The attached patch fixes this.
2005-10-29 10:29:08 +00:00
Mike McCormack 03b4dbbdc4 Create component folders in the CreateFolders action. 2005-10-28 09:39:29 +00:00
Mike McCormack 558abec8d5 If an action fails, print out its name as well as the error code. Use
%d for error codes so it's easy to match them up to something in
winerror.h.
2005-10-27 12:39:28 +00:00
Mike McCormack 51c6618d8d Rename load_dynamic_stringW to msi_dup_record_field to better describe
what it does, and replace a few instances with MSI_RecordGetString to
avoid allocating memory.
2005-10-27 12:36:12 +00:00
Mike McCormack ba293eef48 Tidy up the RegisterProduct action a little. 2005-10-27 12:08:16 +00:00
Mike McCormack f8fef6ea94 Create a stub function to apply a single table transform and call it
where we need to apply transforms.
2005-10-26 13:56:33 +00:00
Mike McCormack 965a72add0 Enumerate the substorage transforms for any patches that are passed on
the command line with PATCH=.  Need to implement
table_apply_transform() before this will do anything interesting.
2005-10-26 12:06:21 +00:00
Mike McCormack 61f24a4ca7 Rename ACTION_DoTopLevelINSTALL to MSI_InstallPackage, remove its
duplicate 4th parameter.
Split the code to copy a package into a separate function.
2005-09-30 10:32:41 +00:00
Mike McCormack 74f0de9638 Create a function to read a property as an integer. 2005-09-29 10:32:39 +00:00
Mike McCormack 3b95515015 Add some more action stubs, remove forward declarations. 2005-09-28 18:10:44 +00:00
Mike McCormack e3452228c6 Split command line parsing from MSI_InstallPackage into a separate
function.
2005-09-28 15:12:32 +00:00
Mike McCormack 2586a0958e Make a macro function for unimplemented actions.
Add some more unimplemented action stubs.
2005-09-26 09:56:18 +00:00
Mike McCormack b9a3a7a1f9 Stub implementation of the IsolateComponents action. 2005-09-25 15:14:03 +00:00
Mike McCormack 94fbe09c5f Add a stub implementation of the BindImage action. 2005-09-23 17:21:10 +00:00
Mike McCormack 567f0314af Stub implementation of the PatchFiles action. 2005-09-23 11:06:57 +00:00
Mike McCormack 8e22e7d7a9 Stub implementation of the MoveFiles action. 2005-09-23 10:48:17 +00:00
Mike McCormack 202166c343 Stub implementation of the RemoveIniValues action. 2005-09-23 10:09:18 +00:00
Mike McCormack 470f23d471 Fix various memory leaks. 2005-09-22 10:56:26 +00:00
Mike McCormack 566c69e7e4 Simplify the ProcessComponents action a little. 2005-09-22 10:49:17 +00:00
Mike McCormack 75658d7aaa Make build_icon_path return the path directly. 2005-09-22 10:33:57 +00:00
Mike McCormack d34b1c23a2 Implement MsiSequenceA/W. 2005-09-21 10:55:23 +00:00
Mike McCormack f3f12ab56b Simplify the InstallValidate action a little. 2005-09-21 10:20:03 +00:00
Mike McCormack ee034ba4c2 Added memory allocation inline functions (part 2). 2005-09-20 11:59:14 +00:00
Mike McCormack 67189f9d1a Fix a bug in a previous patch spotted by Dieter Komendera. 2005-09-16 18:45:19 +00:00
Mike McCormack 062ad50510 Rename load_dynamic_property and remove its unused 3rd argument. 2005-09-15 15:04:08 +00:00
Mike McCormack 4db02cdb0b Use the new msi_reg_set* macros where possible. 2005-09-15 14:58:38 +00:00
Mike McCormack 79ca56cd6a Eliminate fixed length buffers from the MSIFEATURE structure. 2005-09-13 10:37:37 +00:00
Mike McCormack efcc1ec5e4 Fix more fixed length buffers. 2005-09-12 12:07:15 +00:00
Mike McCormack f11c8b0098 Reduce the indent level of a function. 2005-09-09 14:48:51 +00:00
Mike McCormack 5c1212261f Allocate memory rather than using fixed length buffers. 2005-09-08 12:42:31 +00:00
Mike McCormack 72faac0d2f Remove an unnecessary level of indent. 2005-09-08 11:03:35 +00:00
Mike McCormack c50ef541e8 Keep temporary files in a seperate list. 2005-09-07 11:25:18 +00:00
Mike McCormack 298cdaead1 Avoid fixed length buffers for conditions. 2005-09-06 11:39:01 +00:00
Mike McCormack 54a2891d33 Make some fixme messages less alarmist. 2005-09-06 09:23:18 +00:00
Mike McCormack 8aa1a919bf Make sure to save the result calculated in ACTION_UpdateInstallStates. 2005-08-25 19:19:10 +00:00
Aric Stewart 43ec0a4d06 Display the correct text string in the action text field for the
dialog boxes. Also the string should be deformatted.
2005-08-25 09:50:08 +00:00
Johan Dahlin 0946c42d5a Added a null check for component. 2005-08-24 10:57:27 +00:00
Mike McCormack 979511fe6d - build a standard Wine list of folders instead of using an array
- use folder pointers instead of array indexes
2005-08-23 18:15:44 +00:00
Mike McCormack e18f8abee1 - build a standard Wine list of files instead of using an array
- use file pointers instead of array indexes
2005-08-23 10:03:17 +00:00
Aric Stewart d90615bb28 Make index INT not UINT because it can be -1. 2005-08-23 09:30:39 +00:00
Mike McCormack 1da2858caa - build a standard Wine list of features instead of using an array
- use feature pointers instead of array indexes
2005-08-22 14:09:17 +00:00
Mike McCormack 38d67a4537 - build a standard Wine list of components instead of using an array
- use component pointers instead of array indexes
2005-08-22 09:15:23 +00:00
Mike McCormack 3f2d5d7fbb Store the component information in a standard Wine list. 2005-08-19 10:03:11 +00:00
Aric Stewart 35706b6b4c Fixed a memory overflow and leak identified by Mike McCormack. 2005-08-16 15:57:21 +00:00
Aric Stewart 94d6818c51 Add some body to ResolveSource because it is possible to need it when
an install is begun but the media is not in the drive, such as in
install-on-demand cases.
2005-08-15 20:50:06 +00:00
Alexandre Julliard 7258914ef6 Use the official names for the Unicode string constants. 2005-07-13 12:07:41 +00:00
Aric Stewart c6d24d235a Use the strings defined in msi.h. 2005-07-11 18:01:39 +00:00
Aric Stewart b95beae8f9 InstallShield does a number of actions using DoAction before the
Install starts so the PackageCode needs to be loaded on OpenPackage
instead of the beginning of the install process.
2005-07-08 14:19:00 +00:00
Aric Stewart adaef1112e Fill and use the ProductCode part of the MSIPACKAGE structure. 2005-07-07 20:27:06 +00:00
Mike McCormack 4f634a3b7a Stop the install when cancelling from a modeless dialog. 2005-07-06 15:44:51 +00:00
Mike McCormack 16466af791 gcc 4.0 -Wpointer-sign fixes. 2005-07-06 10:33:30 +00:00
Aric Stewart c9802931c1 Keep track of what sequence we are in and register unique
actions. This allows us to make sure actions and custom actions
flagged to run only once, actually run only once.
Also clean up some of the numeric constants in custom.c using the
defined values from msidefs.h.
2005-06-30 20:45:43 +00:00
Aric Stewart f1b52aef96 Relocate the msi file to prevent cd locking, corrected to properly not
try to relocated #nnnn handles as files.
2005-06-28 19:14:30 +00:00
Aric Stewart 25f1e75d43 Perform ExecuteAction at UILevel 2. 2005-06-24 12:14:52 +00:00
Aric Stewart 9adacf6a72 Rework CreateShortcuts to use MSI_IterateRecords. 2005-06-24 11:58:21 +00:00
Aric Stewart 0713f098ec Properly handle -1 as a registry key root. 2005-06-24 11:51:29 +00:00
Aric Stewart 854bfc4b0f Rework SelfRegModules to use MSI_IterateRecords. 2005-06-24 11:33:02 +00:00
Aric Stewart 04598248af Rework component, feature and file loading to use MSI_IterateRecords. 2005-06-23 16:43:24 +00:00
Aric Stewart a9b5052ff9 Rework RegisterFonts to use MSI_IterateRecords. 2005-06-23 11:04:09 +00:00
Aric Stewart aded32f37b Rework WriteIniValues to use MSI_IterateRecords. 2005-06-23 09:46:31 +00:00
Aric Stewart 916ef94945 Rework PublishProduct to use MSI_IterateRecords. 2005-06-22 18:42:19 +00:00
Aric Stewart 234dc4b2d2 Rework RegisterTypeLibraries to use MSI_IterateRecords. 2005-06-22 18:27:34 +00:00
Aric Stewart c79f4e2111 Rework LaunchConditions to use MSI_IterateRecords. 2005-06-22 18:03:08 +00:00
Aric Stewart 443ad4d328 Rework CostFinalize to use MSI_IterateRecords. 2005-06-21 20:50:12 +00:00
Aric Stewart 92ef78ee04 Rework WriteRegistryValues to use MSI_IterateRecords. 2005-06-21 20:21:18 +00:00
Aric Stewart 2274ff1937 Rework CreateFolders to use MSI_IterateRecords. 2005-06-21 20:03:46 +00:00
Aric Stewart 2703d717c6 Use MSI_IterateRecords for processing actions.
Some whitespace cleanup and replace a comment block I did not want to
remove.
2005-06-20 15:33:10 +00:00
Stefan Huehner ac6f562b52 Fix more -Wstrict-prototypes warnings. 2005-06-20 14:18:03 +00:00
Aric Stewart e9db87b956 Flesh out the remaining keys in RegisterProduct. 2005-06-17 21:25:41 +00:00
Aric Stewart c668952023 Break out all the file related actions and helper functions into
files.c
2005-06-17 20:56:55 +00:00
Aric Stewart 4b600b8736 Break out all the top level apis into install.c. 2005-06-16 20:40:34 +00:00
Aric Stewart db982e2586 Break out all the class registration actions into classes.c. This
includes RegisterClassInfo, RegisterProgIds, RegisterExtensions and
RegisterMIMETypes.
2005-06-16 15:51:44 +00:00
Aric Stewart 118ea90888 Break out all the helper functions into helpers.c. 2005-06-15 19:12:42 +00:00
Aric Stewart 09b0abaa1c Extending upon Mike McCormack's cleanup to use MSI_RecordGetString. 2005-06-09 20:30:59 +00:00
Aric Stewart c28bb54f7a Register the Product Version also.
Also help plug some memory leaks pointed out by Mike McCormack.
2005-06-09 15:49:11 +00:00
Aric Stewart d1a7f070d4 Avoid a loop where a parent's parent refers to itself as its parent. 2005-06-09 15:35:48 +00:00
Aric Stewart 00337b9a51 Added module upgrade.c and implemented FindRelatedProducts. 2005-06-09 12:05:27 +00:00
Aric Stewart 6999a04278 Set the Preselected property if appropriate (relevant to
MigrateFeatureStates when implemented).
2005-06-08 19:20:02 +00:00
Aric Stewart 6957e4a0c2 Write out Product Language and Product Icon to the registry. 2005-06-08 19:16:45 +00:00
Aric Stewart 36a01505dc Write out UpgradeCodes to the registry to allow for future upgrades. 2005-06-08 19:07:52 +00:00
Mike McCormack ad6a6be88d Use MSI_RecordGetString in more actions. 2005-06-08 18:34:04 +00:00
Mike McCormack 20806c730b Use MSI_RecordGetString where possible. 2005-06-07 21:34:05 +00:00
Mike McCormack f9acfe635a Fixes for -Wmissing-declarations and -Wwrite-strings warnings. 2005-06-07 20:29:51 +00:00
Aric Stewart f9e64e8187 Don't get caught in loops on parent progids. 2005-06-06 15:39:59 +00:00
Aric Stewart 873c0726e9 Since multiple progids can refer to 1 class we need to check if that
class is isntalled instead of just relying on having it set the
InstallMe variable.
2005-06-04 09:35:22 +00:00
Aric Stewart ee72fb2817 Add install_on_demand for Extension servers also. currently defaulting
to TRUE.
Extension need to have 1 verb to mark the given progid to be
installed.
2005-06-03 11:24:04 +00:00
Aric Stewart a96e1cef9f Do not loop if a ProgId's Parent Index it itself.
Add a VersionIndIndex for tracking version independent fields for the
ProgIds properly.
2005-06-02 20:06:11 +00:00
Aric Stewart f1104125b1 Print a message for skipped actions in ProcessExecSequence like in the
UISequence.
2005-06-02 19:39:49 +00:00