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