Commit Graph

501 Commits

Author SHA1 Message Date
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
James Hawkins 7d3162e6be msi: Abstract MSI_RecordSetStream. 2007-04-23 16:18:13 +02:00
James Hawkins 2b4bf44b79 msi: Add an internal MSI_ViewModify. 2007-04-23 16:18:03 +02:00
James Hawkins b4bb6e5b5d msi: Add the _Property table back, with tests. 2007-04-23 14:03:51 +02:00
James Hawkins d677bd7f3b msi: Return MSICONDITION_NONE in MsiDatabaseIsTablePersistent if the table doesn't exist. 2007-04-23 14:00:24 +02:00
James Hawkins 8cedb218c3 msi: Load the folder property if available and requested. 2007-03-29 21:01:42 +02:00
Andrew Talbot efc988e1c8 msi: Replace inline static with static inline. 2007-03-23 12:29:19 +01:00
James Hawkins 0746b9076d msi: Cleanup the dialog event subscriptions when destroying the dialog. 2007-02-21 10:53:49 +01:00
Mike McCormack d50c62884a msi: Find pending custom actions by GUID. 2007-02-14 14:42:02 +01:00
Mike McCormack 63e554994a msi: Store dll based custom actions in a separate list. 2007-02-12 14:12:41 +01:00
Mike McCormack 94edfde1d9 msi: Register the typelib. 2007-02-08 11:56:16 +01:00
Misha Koshelev d8b00a071d msi: Make sure to ignore UI level flags in dialog and files as well. 2007-02-07 11:03:39 +01:00
Mike McCormack 97419aea80 msi: Examine the attributes of all features before setting a component's state. 2006-12-05 11:29:02 +01:00
Mike McCormack 7eb270265f msi: Load all folders in one query, rather one per query. 2006-11-22 11:43:05 +01:00
Mike McCormack c88c0b453d msi: Remove track_tempfile()'s unused 2nd parameter. 2006-11-14 11:43:17 +01:00
James Hawkins ae18c2dc7f msi: Store the base URL of the MSI package if it is downloaded. 2006-11-08 13:00:15 +01:00
Alexandre Julliard 36c4ec8f33 msi: Fixed definition of the MSIITERHANDLE type. 2006-11-06 13:02:47 +01:00
Mike McCormack f86cfd4088 msi: Avoid a memory leak by freeing actions scripts in one place only. 2006-11-02 12:25:07 +01:00
Mike McCormack 9a4ba8c114 msi: Search the patch package for source cabinet files. 2006-11-01 13:38:09 +01:00
James Hawkins c6bfbde849 msi: Implement handling for the ErrorDialog and use it to change media. 2006-10-27 12:08:46 +02:00
Mike McCormack 15bfb30fc3 msi: Update tables using records, not integer by integer. 2006-10-26 12:56:10 +02:00
Mike McCormack 575cc67d0f msi: Use msi_feature_set_state and msi_component_set_state where possible. 2006-10-26 12:56:09 +02:00
Mike McCormack 0d7dc8f98d msi: Only apply transforms that are valid for a database. 2006-10-23 12:37:40 +02:00
Mike McCormack 7f98f1d086 msi: Initialize the summary information from a storage interface, not a db. 2006-10-23 12:37:32 +02:00
James Hawkins 9119b700ed msi: Revert "msi: Perform button control events in greatest to least order." 2006-10-17 11:16:11 +02:00
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
Mike McCormack 175c407bfc msi: Make msi_makestring static. 2006-10-10 16:11:42 +02:00
James Hawkins 563a50ab35 msi: Make internal functions static. 2006-10-09 14:40:08 +02:00
James Hawkins f721a24a13 msi: Perform button control events in greatest to least order. 2006-10-09 14:40:00 +02:00
James Hawkins 3d812659e8 msi: Return to the parent dialog when the argument to the EndDialog event is Return. 2006-09-29 15:00:13 +02:00
James Hawkins da14a4a25e msi: Store the full path to the database file in the MSIDATABASE structure. 2006-09-26 21:50:36 +02:00
Mike McCormack 60d92d42a3 msi: Fix a couple of test cases for MsiDatabaseIsTablePersistent. 2006-09-13 12:19:54 +02:00
Mike McCormack 74a6a1e71b msi: Delete databases we create but never commit. 2006-09-13 10:58:42 +02:00
James Hawkins 1cfdc5185a msi: Store and use the center point of the dialog window in between dialogs. 2006-09-07 15:14:11 +02:00
Mike McCormack a426b18efd msi: Create MSI_ViewGetColumnInfo for accessing MsiViewGetColumnInfo internally. 2006-09-07 11:00:51 +02:00
Mike McCormack 71d8f4ebf6 msi: Create a function to copy record fields, use it to order INSERT fields correctly. 2006-09-07 11:00:19 +02:00
Mike McCormack 155a325f96 msi: Free the handle table on PROCESS_DETACH. 2006-08-29 13:48:04 +02:00
Dan Kegel 29f0803c02 msi: Remove limit on number of handles. 2006-08-28 17:49:31 +02:00
Mike McCormack 5f832b2731 msi: Fix writing of long strings to the database. 2006-08-28 11:49:21 +02:00
James Hawkins a1b16d2d96 msi: Add initial implementation of the DirectoryListUp event. 2006-08-28 11:38:04 +02:00
Mike McCormack a4fb1c94ac msi: Store properties in a hash table, not the database.
Use string insensitive comparisons for property names.
2006-08-25 11:21:14 +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
Andrew Talbot d58e1dba42 msi: Write-strings warnings fix. 2006-08-05 11:27:04 +02:00
Stefan Leichter 93bbd00be7 msi: Make the version information of DllGetVersion same as in version resource. 2006-07-28 13:17:01 +02:00
Mike McCormack 0bfb9c3e3d msi: Move COM server implementation to a separate file. 2006-07-24 19:55:41 +02:00
James Hawkins de73481c89 msi: Forward MsiSetInstallLevel to an internal MSI_SetInstallLevel that can be used internally. 2006-07-20 12:51:11 +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
Mike McCormack a3c03fea58 msi: Add some registry reading macro functions. 2006-07-14 13:32:39 +02:00
Mike McCormack 230af9d21f msi: Move version string conversions to registry.c. 2006-07-14 13:32:39 +02:00
Mike McCormack 9917250863 msi: Move some registry helper functions to registry.c. 2006-07-14 13:32:39 +02:00
Alexandre Julliard 9a59ee76e4 msi: Make all the ops structures static and const. 2006-06-10 12:02:39 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman 9f487ba1de msi: Optimise WHERE operations.
Optimise WHERE operations on matching against strings by adding a new
function find_matching_rows to the views, which eliminates the need to
examine every record when executing a query. Implement this function
in the table using a hash table on the ID stored in the data.
2006-03-20 12:03:04 +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 188365e2f0 msi: Implement the Reset control event. 2006-01-03 12:12:09 +01:00
Mike McCormack 3e6f31bf0b Fix and test MsiGetProperty and MsiSetProperty. 2005-10-31 14:07:37 +00:00
Mike McCormack 1cd26d25fc Implement transforms. This still includes some debugging code which
can be enabled by setting debug_transform to 1 in the relevant
places.
2005-10-27 12:25:04 +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 6d9c80e8a0 Create an internal handle-free api for reading MSI database summary
information.
2005-10-26 10:10:50 +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 8e74308a10 Fix and test MsiViewGetColumnInfo and binary fields. 2005-09-28 11:59:40 +00:00
Mike McCormack 41c788f5a1 Don't create MSI handles unless we have to pass one through the API. 2005-09-28 10:13:18 +00:00
Mike McCormack d34b1c23a2 Implement MsiSequenceA/W. 2005-09-21 10:55:23 +00:00
Mike McCormack 7d7da60db4 Don't refcount tables. 2005-09-21 10:20:20 +00:00
Mike McCormack 8dc28d5306 Added memory allocation inline functions (part 1). 2005-09-20 11:57:19 +00:00
Mike McCormack 230e71cc18 Fix memory leaks in the table code. 2005-09-17 14:29:38 +00:00
Mike McCormack 6b5f290d75 Make load_string_table return the string table. 2005-09-16 19:01:40 +00:00
Mike McCormack 4db02cdb0b Use the new msi_reg_set* macros where possible. 2005-09-15 14:58:38 +00:00
Mike McCormack ade532a163 Remove some unused values in the object header. 2005-09-14 11:15:22 +00:00
Mike McCormack 5f1b258c9c Convert the list of tables to a standard list. 2005-09-14 10:07:26 +00:00
Alexandre Julliard 903e0b9fc5 Get rid of a couple of non-portable long long constants. 2005-09-13 11:26:36 +00:00
Mike McCormack 0232c5c45f Convert RunningActions array into a list. 2005-09-08 12:42:07 +00:00
Mike McCormack c50ef541e8 Keep temporary files in a seperate list. 2005-09-07 11:25:18 +00:00
Mike McCormack 68680e9c0c Fixes for MsiGetSourcePath parameter handling. 2005-09-06 11:05:35 +00:00
Mike McCormack 1ceb25ba7b Convert progids to a standard list. 2005-09-06 09:26:18 +00:00
Mike McCormack 4d7b593bd3 - convert verbs into a standard list
- remove limitation of 100 verbs
- use pointers to verbs rather than indexes
2005-09-02 14:39:13 +00:00
Mike McCormack 0c49c1c41d - build a standard Wine list of extensions instead of using an array
- use extension pointers instead of array indexes
2005-08-29 09:38:39 +00:00
Mike McCormack 9e558d7449 - build a standard Wine list of mime types instead of using an array
- use mime type pointers instead of array indexes
2005-08-26 08:47:31 +00:00
Mike McCormack a391a98a9d - build a standard Wine list of classes instead of using an array
- use class pointers instead of array indexes
2005-08-25 10:22:32 +00:00
Mike McCormack e8d1a167df Implement MsiModifyView (MSIMODIFY_INSERT_TEMPORARY). 2005-08-24 11:10:23 +00:00
Mike McCormack febad089ce - build a standard Wine list of appids instead of using an array
- use appid pointers instead of array indexes
2005-08-24 09:45:18 +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
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
Alexandre Julliard d37f0abf07 Don't prefix the functions DllCanUnloadNow, DllGetClassObject and
Dll(Un)RegisterServer with the dll name so that the compiler can check
the prototypes.
2005-08-08 17:35:28 +00:00
Yuri Kozlov 934c6fa93f Remove duplicate declaration of MSI_SetPropertyW. 2005-08-08 11:07:10 +00:00
Mike McCormack 16466af791 gcc 4.0 -Wpointer-sign fixes. 2005-07-06 10:33:30 +00:00
Aric Stewart b7dc53d462 Add source.c to start handling the various MsiSourceList apis used in
v3 of MSI, and now internally.
Update files.c to use the MsiSourceList apis to make sure our
SourceList keys in the registry are included and correct.
2005-07-05 21:00:06 +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
Mike McCormack 7e3918d53e Make the MSI icon control work. 2005-06-23 16:43:38 +00:00
Aric Stewart 71a55e04a3 Allow control events to return codes to halt the processing of event.
Needed for the SetTargetPath Event.
2005-06-17 21:31:06 +00:00
Mike McCormack f9acfe635a Fixes for -Wmissing-declarations and -Wwrite-strings warnings. 2005-06-07 20:29:51 +00:00
Aric Stewart 19ba432b2b Add functions to add the User UpgradeCodes. 2005-06-07 20:02:27 +00:00
Mike McCormack b402f04851 Use standard lists in the event subscription code. 2005-06-06 15:40:15 +00:00
Mike McCormack 6309892499 Create a helper function to fetch a single record from a query. 2005-06-02 10:29:28 +00:00
Mike McCormack e8b21c3eed - avoid unicode.h
- add a missing function prototype
2005-06-01 11:02:19 +00:00
Mike McCormack 64de949cdd More -Wmissing-declarations and -Wwrite-strings warning fixes. 2005-05-31 09:30:28 +00:00
Aric Stewart 9cd707da3f Introduce really basic scripting of actions. This is primarily to get
the order of execution of the action correct since some custom actions
can be scripted and others are run during the script building phase.
2005-05-27 19:24:22 +00:00
Alexandre Julliard d757bfeeaf Authors: Aric Stewart <aric@codeweavers.com>, Mike McCormack <mike@codeweavers.com>
Implement dialog events and hook up the dialog code.
2005-05-27 09:11:18 +00:00
Aric Stewart 6f43c18fe7 A big rewrite of the whole RegisterClass, RegisterProgId,
RegisterExtension and RegisterMIME actions. We now handle verbs
properly, handle dependancies and such properly and keep track of what
we need to register and what we do not properly.
2005-05-26 12:24:28 +00:00
Mike McCormack 0093007b32 Track memory allocations in the SQL parser. 2005-05-23 12:08:17 +00:00
Mike McCormack 7153c8fa65 - remove the unused utf8 field of an expression
- make the parse result a single assignment at top level of parsing
- abort parsing on a memory allocation failure
2005-05-23 09:53:43 +00:00
Aric Stewart b39d8fc2a6 - ExecuteAction runs the whole Execute table and not just from
InstallValidate onward.  To do this make sure we do not do the
  costing initialization work again if it is already done (by checking
  the CostingComplete Property).
- A lot of work to refine feature states, setting the state affects
  the state of all child features and also respect features that want
  to default to something other than LOCAL.
2005-05-13 13:56:39 +00:00
Mike McCormack 07c74d07f3 Make sure that dialogs are only created and destroyed in a single
thread.
2005-04-27 10:16:57 +00:00
Aric Stewart 072c5e56a2 Implement Publish Components in order for MsiGetQualifiedComponent
apis to work. Also implement MsiGetQualifiedComponent, or at least some
of the functionality as it is supposed to install stuff if it is
absent, which it does not do yet.
2005-04-20 12:50:05 +00:00
Mike McCormack 499a887d0f Load and display bitmaps in the dialogs. 2005-04-11 12:47:20 +00:00