Commit Graph

504 Commits

Author SHA1 Message Date
Nikolay Sivov e726b54c87 msi: Cache ITypeInfo instances for automation objects instead of reloading every time. 2012-11-14 19:19:36 +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 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 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 32aed60786 msi: Preserve strings with embedded nulls in the record implementation. 2012-10-29 14:41:04 +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 1ee3be6e80 msi: Only remove a component if the number of clients drops to zero. 2012-09-11 18:07:29 +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 f0ea60049c msi: Add support for 64-bit registry components. 2012-06-11 21:03:47 +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 4b32c09376 msi: Add support for the ActionInfo progress message subtype. 2012-05-15 16:26:38 +02:00
Hans Leidekker 605e0b7b41 msi: Add support for uninstalling global assemblies. 2012-04-30 11:02:28 +02:00
Hans Leidekker c8bb335990 msi: Check supported languages in the AppSearch action. 2012-04-23 17:55:28 +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 15ee85dee8 msi: Implement MsiGet/SetMode(MSIRUNMODE_REBOOTNOW). 2012-04-02 13:30:36 +02:00
Hans Leidekker 89c80c41ea msi: Rename the need_reboot flag to need_reboot_at_end. 2012-04-02 13:30:24 +02:00
André Hentschel c000cbaf49 msi: Allow ARM installations. 2012-03-26 12:41:27 +02:00
Hans Leidekker a4c20dc437 msi: Implement MsiEnumProductsEx. 2012-03-12 16:37:23 +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
Hans Leidekker b00e7039c5 msi: Execute custom actions in the right script. 2012-01-06 21:57:40 +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 7c7e0bd51d msi: MSI_SetFeatureStateW doesn't need to be WINAPI. 2011-09-23 12:39:02 +02:00
Hans Leidekker 2788a95c8e msi: Support TrueType font files in MsiGetFileVersion. 2011-09-20 16:21:41 +02:00
Hans Leidekker 5783c2cfcb msi: Move the preview code to dialog.c. 2011-09-09 13:37:40 +02:00
Hans Leidekker 470688f729 msi: Use a higher value for the initial transform disk id. 2011-09-05 17:17:37 +02:00
Bernhard Loos abd1174941 msi: Protected primary keys against modification. 2011-08-26 13:34:25 +02:00
Hans Leidekker 70e3790707 msi: Remove local patch packages when the product is removed. 2011-08-23 16:53:56 +02:00
Hans Leidekker 621b0405c9 msi: Don't create a temporary copy of the package.
There's no need for it now that we open the package in transacted mode.
2011-08-23 16:53:56 +02:00
Hans Leidekker e1c2e8828f msi: Clean up the database queries. 2011-07-27 11:55:16 +02:00
Hans Leidekker d1b2058500 msi: Make the column and table name parameters of get_column_info const. 2011-07-27 11:55:06 +02:00
Francois Gouget 26772e168b msi: Make msi_parse_patch_summary() and msi_apply_patch_db() static. 2011-07-07 14:46:14 +02:00
Hans Leidekker 7d677fc327 msi: Delay creating local installer and patch packages until the product is registered. 2011-07-01 14:39:36 +02:00
Hans Leidekker 791fe136a9 msi: Remove directories after removing all files. 2011-07-01 14:39:36 +02:00
Hans Leidekker 2cbeb20d39 msi: Use an enum to represent folder states. 2011-07-01 14:39:36 +02:00
Hans Leidekker 4c9c50d86b msi: Implement and test MsiGetFeatureInfo. 2011-06-10 10:55:11 +02:00
Hans Leidekker ab13c00fc9 msi: Add support for returning validation errors. 2011-06-07 14:18:33 +02:00
Hans Leidekker ad84982d92 msi: Fix the class actions to revert features to the installed state during rollback. 2011-05-24 11:58:38 +02:00
Hans Leidekker b7950cfe68 msi: Fix the folder actions to revert components to the installed state during rollback. 2011-05-24 11:58:24 +02:00
Hans Leidekker 02fb530401 msi: Move patch related functions to a separate file. 2011-05-24 11:57:57 +02:00
Hans Leidekker 0f5cb14a67 msi: Schedule rollback for standard actions. 2011-05-20 12:44:32 +02:00
Hans Leidekker 9c9e0981b4 msi: Implement the DisableRollback standard action. 2011-05-20 12:44:22 +02:00
Hans Leidekker 4f9971f5f8 msi: Keep track of a stream's storage. 2011-05-06 16:40:06 +02:00
Hans Leidekker 6b8a8d75e2 msi: Add support for version 1.0 of the .NET runtime. 2011-05-06 16:39:58 +02:00
Hans Leidekker bffd5e0cbb msi: Destroy assembly caches right after use.
This avoids keeping dlls loaded that the .NET service pack installers want to replace.
2011-05-06 16:39:51 +02:00
Hans Leidekker 0c43024af7 msi: Get rid of helpers.c. 2011-05-06 16:39:08 +02:00
Francois Gouget f09bbacf9e msi: get_msi_typelib() is not used anymore so remove it. 2011-05-03 19:34:29 +02:00
Hans Leidekker cd34bfe6c1 msi: Define common strings just once. 2011-05-02 16:40:20 +02:00
Hans Leidekker 4668091528 msi: Rewrite the folder resolution code to keep track of the parent-child relationship. 2011-05-02 16:40:06 +02:00
Hans Leidekker 8fb5368d4e msi: Use a separate function to retrieve the target folder path. 2011-05-02 16:39:52 +02:00
Marcus Meissner eb97e6179f msi: Mark internal symbols as visibility hidden. 2011-04-25 13:02:17 +02:00
Francois Gouget d685bfa548 msi: Move msi_get_cabinet_stream() up and make it static. 2011-04-18 12:40:02 +02:00
Hans Leidekker eee070f1e0 msi: Add offsets to disk ids added by patches. 2011-04-14 17:37:23 +02:00
Hans Leidekker 131ef6372f msi: Add support for maintaining a list of cabinet streams. 2011-04-14 17:37:23 +02:00
Hans Leidekker 68d6158875 msi: Implement and test MsiEnumComponentCostsA/W. 2011-04-01 16:16:04 +02:00
Hans Leidekker e4d19fc47b msi: Explicitly pass product code and platform to MSIREG_OpenUninstallKey and MSIREG_DeleteUninstallKey. 2011-03-30 13:28:05 +02:00
David Hedberg 6771ed40e8 msi: Add support for patching files. 2011-03-29 12:22:34 +02:00
David Hedberg 18973df9c7 msi: Generalize media helpers a bit. 2011-03-29 12:21:58 +02:00
David Hedberg fed6e5211c msi: Add an offset to sequence numbers belonging to files added by a patch. 2011-03-29 12:21:49 +02:00
Hans Leidekker 429407cfb6 msi: Assume a file is present if the target exists with the same size and there's no file version or hash to verify. 2011-03-08 12:31:04 +01:00
Hans Leidekker be790cb0ad msi: Load media info even if there's no file to install. 2011-03-08 12:30:55 +01:00
Hans Leidekker 4a6c63e24a msi: Make a second pass to determine which files to install in the InstallFiles action.
This is needed because the target path can still change after CostFinalize
is executed. This happens in the .NET 1.1 Service Pack 1 installer where a
custom action calls SetTargetPath.
2011-03-08 12:30:49 +01:00
Hans Leidekker f1e59351de msi: Manage one assembly cache per major version of the .NET runtime. 2011-03-07 13:17:46 +01:00
Hans Leidekker ba9f1f770a msi: Get rid of msi_component_set_state and msi_feature_set_state. 2011-02-10 10:28:01 -06:00
Hans Leidekker b96e5d21c6 msi: Split up resolve_folder. 2011-02-07 10:17:15 -06:00
Hans Leidekker 92203f1053 msi: Implement the MsiPublishAssemblies and MsiUnpublishAssemblies standard actions. 2011-01-24 16:04:28 +01:00
Hans Leidekker 701f14801f msi: Clean up better when removing a product. 2011-01-20 12:23:09 +01:00
Hans Leidekker d08378a06f msi: Fix parsing of patch product codes (valgrind). 2011-01-12 14:55:56 +01:00
Hans Leidekker 0c25649d3e msi: Add support for comparing TrueType font versions. 2011-01-11 16:05:46 +01:00
Hans Leidekker 6d10216891 msi: Change ACTION_UpdateComponentStates to take a feature pointer. 2010-12-24 15:51:31 +01:00
Alexandre Julliard 17e66e06d6 msi: Convert the dll registration to the IRegistrar mechanism. 2010-12-17 14:59:49 +01:00
Hans Leidekker 06505c9a34 msi: Reuse temporary executables.
Fixes a custom action in the Office 2010 installer and makes installers
that pack multiple custom actions in an executable faster.
2010-12-02 12:47:41 +01:00
Peter Urbanec edab173047 msi: Add AMD64 platform definition to support installation of Visual C++ 8.0 redistributable. 2010-11-26 12:15:21 +01:00
Hans Leidekker c3adb72820 msi: Add support for importing and exporting the special _ForceCodepage table. 2010-11-17 14:01:13 +01:00
Hans Leidekker a23514eece msi: Add support for installing side-by-side assemblies. 2010-11-11 12:23:06 +01:00
Hans Leidekker f3e7ed44f1 msi: Open the log file once per package. 2010-10-26 15:24:40 +02:00
Hans Leidekker ded22a58c0 msi: Don't inline msi_feature_set_state and msi_component_set_state. 2010-10-22 12:06:33 +02:00
Hans Leidekker eaa57c5b7b msi: Compare strings without depending on thread locale. 2010-10-19 13:49:54 +02:00
Hans Leidekker 59d6dcfddd msi: Put keys from 32-bit packages starting with HLKM\Software under Wow6432Node on 64-bit. 2010-10-13 15:52:27 +02:00
Hans Leidekker 43a680a155 msi: Register class ids from 32-bit packages under Wow6432Node on 64-bit. 2010-10-13 15:52:19 +02:00
Hans Leidekker cf6e820106 msi: Allocate 3 bytes instead of 2 for in-memory string references.
Fixes an installer that stores string references as 2 byte integers and
grows the number of strings beyond the limit of 64k during installation.
2010-10-11 17:11:26 +02:00
Hans Leidekker 3cd55cc916 msi Set the feature action to INSTALLSTATE_UNKNOWN if msidbFeatureAttributesUIDisallowAbsent is set. 2010-10-06 20:46:34 +02:00
Hans Leidekker ca7cd1bf89 msi: Validate packages based on supported version, platform and languages. 2010-10-06 20:46:27 +02:00
Hans Leidekker 52aab76eb2 msi: Put the uninstall key for 32-bit packages under Wow6432Node on 64-bit. 2010-10-05 17:50:16 +02:00
Hans Leidekker d56d0d98a3 msi: Remove unused field from MSICOMPONENT structure. 2010-09-24 18:20:32 +02:00
Hans Leidekker a0ebe951b6 msi: Read supported platform and language ids from the summary information stream. 2010-09-18 13:06:28 +02:00
Hans Leidekker 931bf05731 msi: Adjust the AdminUser property too after applying a patch. 2010-09-18 13:06:17 +02:00
Hans Leidekker 7e9d50a122 msi: Avoid pointer truncation in MSI_ViewFetch and MSI_ViewModify. 2010-09-13 10:59:18 -05:00
Hans Leidekker 378bb21f8e msi: Bump version to 4.5. 2010-08-18 15:31:25 +02:00
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 d10208e863 msi: Improve traces in db_get_raw_stream. 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 f7aa88fe7d msi: Store the patch state in the registry. 2010-07-20 16:29:45 +02:00
Hans Leidekker 67f15e7149 msi: Implement MsiGetFeatureCostA/W. 2010-06-11 15:54:54 +02:00
Hans Leidekker 15f5b9dca3 msi: Compare file versions as numbers instead of strings. 2010-06-11 15:54:24 +02:00
Hans Leidekker dcb501decd msi: Create directories right before installing files. 2010-06-09 16:12:44 +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 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 319465831c msi: Store a copy of the file extension in the MSIMIME structure.
Fixes a crash that occurs when the extension foreign key points to nowhere.
Reported by Vincent Pelletier.
2010-04-29 10:19:39 -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 8f53405544 msi: Remove the string index parameter from msi_addstringW. 2010-04-19 14:57:02 +02:00
Hans Leidekker 109ffd0f97 msi: Make the string reference count a short.
This is safe because the reference count is stored in 2 bytes on disk.

(This is commit ff2f894888 reapplied
because of incorrect revert in 88214a72ce).
2010-04-14 18:00:39 +02:00
Hans Leidekker 88214a72ce msi: Make the string reference count a short.
This is safe because the reference count is stored in 2 bytes on disk.
2010-04-13 11:48:14 +02:00
Hans Leidekker ff2f894888 msi: Make the string reference count a short.
This is safe because the reference count is stored in 2 bytes on disk.
2010-04-13 11:46:14 +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
Hans Leidekker e5869d5d5c msi: Keep source directory and cabinet file separate. 2010-03-26 15:35:24 +01:00
Hans Leidekker faf750f2f7 msi: Remove stream from streams cache before destroying it. 2010-03-23 13:24:27 +01:00
Hans Leidekker 706c4f77e8 msi: Implement a second cabinet extractor on top of IStream and use it to extract embedded cabinets.
Currently a cabinet stream is read into memory and then written to a file,
which is then extracted like an external cabinet file. This uses more time
and disk space than necessary and fails if the cabinet is too large to fit
into memory.
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 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 868e6f2bc8 msi: Update the UI in the AppSearch action. 2010-03-05 13:13:42 +01:00
Hans Leidekker b891d0888a msi: Implement the RemoveIniValues standard action. 2010-03-02 16:12:17 +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 ec5ae81c8d msi: Make msi_reset_folders static. 2010-02-22 13:14:35 +01:00
Hans Leidekker 1ff9923148 msi: Add summary information stream to the streams table. 2010-02-19 13:06:53 +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 98761037ab msi: Implement the UnregisterTypeLibraries standard action. 2010-02-12 14:49:38 +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 9a0020ade9 msi: Move some helpers to the module where they are used. 2010-02-03 11:31:48 +01:00
Hans Leidekker ff2aa7e3a6 msi: Fix download of installer packages. Return errors from msi_download_file and copy_package_to_temp. 2009-12-17 14:21:32 +01:00
James Hawkins 6b403d1a31 msi: Move MSITRANSFORM and MSISTREAM and associated methods to the dabatase implementation file as they are database objects/methods. 2009-12-17 12:53:34 +01:00
James Hawkins a2f5d0e270 msi: Free the cached streams when closing the database. 2009-12-17 12:53:27 +01:00
Hans Leidekker ef522c5ef0 msi: Clone the open stream instead of trying to open a stream again. 2009-12-16 13:04:35 +01:00
James Hawkins 9ab7d9e21a msi: Close the original record before copying new data into it. 2009-12-11 12:16:26 +01:00
Rob Shearman b960b967c9 msi: Improve stub for MsiGetFeatureCost{A, W} and hook the stub into the VolumeCostList dialog control. 2009-11-09 19:43:23 +01:00
Hans Leidekker 808343fb5b msi: Implement MsiSetExternalUIRecord. 2009-11-03 22:23:08 +01:00
Nate Gallaher cc366e1282 msi: Add tablename tracking to VIEW_find_column.
This fixes the bug where multiple columns of the same name, but
different tables are members of a join. Any attempt to refer to these
columns will resolve to the first available column with that name,
irregardless of any tablename modifier.
2009-10-27 14:01:23 +01:00
Hans Leidekker 8dd3d389b0 msi: Create the local copy before opening the database. 2009-10-20 14:39:55 +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 05e9a1fce8 msi: Add a partial implementation of MsiDetermineApplicablePatchesW. 2009-09-02 14:41:31 +02:00
Hans Leidekker 60b7604aa1 msi: Support opening transform databases. 2009-06-30 13:46:39 +02:00
Hib Eris cad837c999 msi: Add support for importing binary OBJECTS. 2009-05-27 12:51:10 +02:00