Commit Graph

408 Commits

Author SHA1 Message Date
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
Hib Eris d9568722aa msi: Support transforms with binary OBJECTS. 2009-05-26 15:18:09 +02:00
Hans Leidekker 184474ea66 msi: Support setting summary information by importing a _SummaryInformation table. 2009-04-14 15:20:58 -05:00
James Hawkins c965d839f9 msi: Allow the enumeration of other users' patches. 2009-03-23 15:52:17 +01:00
James Hawkins c9b3bc1165 msi: Column attributes for temporary string and int columns should be g and j respectively. 2009-03-02 12:05:28 +01:00
James Hawkins b3c9875cf7 msi: Correctly order transposed column values in the INSERT query. 2009-03-02 12:04:57 +01:00
Andrew Talbot c0ad988e67 msi: Remove unused functions. 2009-02-06 13:04:03 +01:00
Andrew Talbot 668197a898 msi: Declare some functions static. 2009-01-12 13:10:53 +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 880b9199a9 msi: Add the ability to query a specific context for a patch. 2008-12-15 12:34:12 +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 bdf7da9bdc msi: Remove a duplicated function. 2008-12-09 10:28:04 +01:00
James Hawkins 8438d21127 msi: Remove a duplicated function. 2008-12-09 10:27:58 +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
Andrew Talbot 94d22682c1 msi: Remove an unused declaration. 2008-12-08 22:02:53 +01:00
James Hawkins 7051bf5e22 msi: Remove an unused registry function. 2008-11-04 11:24:16 +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 f03889ae82 msi: Add initial implementation of MsiDatabaseMerge, with tests. 2008-10-09 12:58:25 +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
James Hawkins 62c544cf4f msi: Implement the DROP TABLE sql command. 2008-10-06 13:05:52 +02:00
Marcus Meissner 96412ee564 Annotate with allocation size attribute. 2008-09-05 11:22:26 +02:00
James Hawkins 4b9fd1d5e2 msi: Store the _Columns and _Tables tables in the database structure. 2008-08-25 11:40:46 +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 9288055beb msi: Only set the action to source if the component has a local feature. 2008-08-25 11:40:15 +02:00
James Hawkins 3807a91739 msi: Fix the logic to determine the appropriate action of the feature. 2008-08-25 11:40:09 +02:00
James Hawkins 7c9873e471 msi: Fix the logic to determine the appropriate action of the component. 2008-08-21 11:44:27 +02:00
James Hawkins 74239fcd91 msi: Factor out media handling and use the new interface to efficiently extract assemblies. 2008-08-19 13:37:51 +02:00
James Hawkins 38106ac230 msi: Handle the package context when unpublishing the product. 2008-07-29 12:19:37 +02:00
James Hawkins 7538f9ac19 msi: Use the newly added defines from the msidbSumInfoSourceType enumeration. 2008-07-22 13:10:38 +02:00
James Hawkins 200eba3b94 msi: Handle the user managed context in MsiQueryFeatureState. 2008-06-24 12:15:31 +02:00
James Hawkins 58e1543960 msi: Fix the published location of the upgrade code for the machine context. 2008-06-24 12:15:10 +02:00
James Hawkins 301f2a5eae msi: Open the local user data product key for the machine context. 2008-06-24 12:15:03 +02:00
James Hawkins cdb33f8a39 msi: Publish the UpgradeCode in PublishProduct. 2008-06-24 12:14:49 +02:00
James Hawkins 2a180e060a msi: Fix the PublishFeatures action to handle the package context. 2008-06-19 12:33:55 +02:00
James Hawkins 288af81a7c msi: Fix the ProcessComponents action to handle the package context. 2008-06-18 16:23:27 +02:00
James Hawkins 4aa3a997f8 msi: Don't publish components to the Installer key. 2008-06-18 16:23:18 +02:00
James Hawkins 77d259f46c msi: Search the last used source if the cabinet to extract cannot be found. 2008-05-22 11:30:54 +02:00
James Hawkins bfe07d1d07 msi: Add initial implementation of MsiPublishAssemblies. 2008-04-30 13:45:23 +02:00
James Hawkins e21a26e47b msi: Test and reimplement MsiQueryProductState. 2008-04-07 11:27:24 +02:00
James Hawkins 82517d6d67 msi: Set the install context based on the ALLUSERS property. 2008-04-07 11:27:10 +02:00
James Hawkins cf84e2df5b msi: Allow setting a media disk as the last used source in the internal msi_set_last_used_source. 2008-02-26 11:20:35 +01:00
Rob Shearman 9b5d3677df msi: Remove some unused functions. 2008-02-19 13:39:24 +01:00
James Hawkins 1f3d6a9744 msi: Reimplement MsiGetProductInfo. 2008-02-12 22:59:29 +01:00
James Hawkins 91c205e8c0 msi: Sort each table of the join separately. 2007-12-18 12:32:55 +01:00
James Hawkins 4160722b07 msi: Check the destination file's hash and skip that file if the hash matches. 2007-11-26 12:28:15 +01:00
James Hawkins f6b27673b0 msi: Delete the uninstall key when the product is removed. 2007-11-13 13:35:01 +01:00
James Hawkins 0e29f314f5 msi: Return a remote interface to the database in a custom action. 2007-11-12 12:06:40 +01:00
James Hawkins 1a0b23cd7d msi: Implement the CCPSearch standard action. 2007-11-05 14:55:24 +01:00
James Hawkins fc6b9dd4e4 msi: Properly register and unregister components. 2007-11-01 12:43:06 +01:00
James Hawkins 6ac0816109 msi: Implement the UnpublishFeatures standard action. 2007-08-10 12:58:17 +02:00
Francois Gouget 5771700019 msi: Better match the PSDK types, remove some now unused types from win32.api, and update it to fix the winapi_check warnings. 2007-08-09 14:12:44 +02:00
James Hawkins 511bdd9de8 msi: Simplify MsiQueryComponentState, with more tests. 2007-08-09 13:53:36 +02:00
James Hawkins ca55c7a330 msi: Implement the MSIINSTALLCONTEXT_MACHINE context for MsiQueryComponentState. 2007-08-07 12:39:48 +02:00
James Hawkins b830fb0a34 msi: Implement the MSIMODIFY_UPDATE command in the SELECT view. 2007-07-27 12:24:39 +02:00
James Hawkins ccef56f2cc msi: Ref count temporary columns and release them when necessary. 2007-07-23 11:55:34 +02:00
James Hawkins 0fd733bf90 msi: Implement adding columns using the ALTER command. 2007-07-23 11:55:11 +02:00
James Hawkins 3b1ab76986 msi: Implement reference counting for tables, manipulated with the HOLD and FREE sql commands. 2007-07-19 12:00:43 +02:00
James Hawkins dc3060c542 msi: Load the AdminProperties stream if the package is an Admin package. 2007-07-17 12:54:53 +02:00
James Hawkins 30fc5602de msi: Reload properties as they may have been changed by a transform. 2007-07-13 12:27:33 +02:00
James Hawkins ba4919912c msi: Forward MsiFormatRecordA to MsiFormatRecordW. 2007-07-06 18:12:05 +02:00
James Hawkins 39a5638268 msi: Read the components state directly from the registry. 2007-07-03 14:05:41 +02:00
James Hawkins 1130d5909b msi: Open the correct key and return INSTALLSTATE_ADVERTISED if it's missing. 2007-07-03 14:05:21 +02:00
James Hawkins 0e44e090c5 msi: Set the WindowsInstaller value in RegisterProduct instead of PublishProduct. 2007-07-03 13:49:44 +02:00
James Hawkins 624bbbe78a msi: Unpublish the product when it is entirely removed. 2007-07-03 13:49:18 +02:00
James Hawkins 5e46fc9019 msi: Delay publishing of the SourceList until the PublishProduct action. 2007-07-03 13:43:20 +02:00
James Hawkins 04c67c2a1c msi: Add support for the MSICODE_PATCH option. 2007-07-03 13:42:42 +02:00
James Hawkins e4658e05f2 msi: Handle remote calls to MsiGetActiveDatabase. 2007-07-03 12:59:32 +02:00
James Hawkins bc4750ff75 msi: Add the IWineMsiRemoteCustomAction interface. 2007-07-03 12:59:17 +02:00
James Hawkins f9001058b0 msi: Add the IWineMsiRemotePackage interface. 2007-07-03 12:58:43 +02:00
James Hawkins 7da89f48fd msi: Use the correct registry key when detecting a published product. 2007-06-27 12:32:44 +02:00
Rob Shearman 2e2b17f340 msi: Fix transforms to work when the number of bytes per string reference differs to that of the database it is being applied to. 2007-06-27 12:32:42 +02:00
Rob Shearman 8a94f7aad3 msi: Implement MsiGetMode for MSIRUNMODE_SCHEDULED, MSIRUNMODE_COMMIT and MSIRUNMODE_ROLLBACK. 2007-06-26 11:56:33 +02:00
James Hawkins 9309f4dfa0 msi: Properly delete rows from the table, instead of zeroing out the row. 2007-06-19 11:31:44 +02:00
Andrew Talbot 19ef864058 msi: Name all or none of the formal arguments in function prototypes. 2007-06-18 13:36:42 +02:00
Andrew Talbot cf1e01eb0c msi: Constify some variables. 2007-06-14 13:20:45 +02:00
Andrew Talbot 8b362f7fc8 msi: Constify some variables. 2007-06-13 11:18:35 +02:00
James Hawkins a05613a9f2 msi: Add support for large string tables. 2007-06-08 11:59:28 +02:00
Andrew Talbot a0ae69a8d1 msi: Constify some variables. 2007-06-06 14:07:22 +02:00
Andrew Talbot 1486d851da msi: Constify some variables. 2007-06-01 12:51:14 +02:00
James Hawkins c2e91588e9 msi: Perform a forced reboot if a custom action returns ERROR_INSTALL_SUSPEND. 2007-05-30 11:49:16 +02:00
Michael Stefaniuc 7043b7baa4 msi: A signed 1-bit bitfield doesn't make much sense; use unsigned. 2007-05-24 11:36:10 +02:00
Misha Koshelev 8ba0b3c7b9 msi: automation: Store parent Installer object in Session. 2007-05-07 14:23:37 +02:00
Misha Koshelev eee455c24a msi: Add JScript/VBScript support. 2007-05-01 18:34:17 +02:00
Misha Koshelev f217cacbc2 msi: automation: Expose Installer object. 2007-05-01 18:05:26 +02:00
James Hawkins da55285acb msi: Implement special handling for the _Streams table. 2007-04-25 12:44:37 +02:00
Rob Shearman 23379b3b5c msi: Add support for adding temporary/non-persistent data to tables. 2007-04-24 12:24:48 +02:00
Rob Shearman e261d602fb msi: Cleanup unneeded string table functions.
Make string table functions that aren't used outside of string.c static.
2007-04-24 12:21:33 +02:00
Rob Shearman 37b11baaa3 msi: Move string loading and saving to string.c. 2007-04-24 12:20:19 +02:00
Rob Shearman 2e3289ca6c msi: Add support for non-persistent strings.
Store the loaded refcount in the string table.
2007-04-24 12:18:04 +02:00