Commit Graph

194 Commits

Author SHA1 Message Date
Mike McCormack e5f2ed4c66 Fix MsiRecordSetString for NULL strings and update test case. 2005-01-26 20:39:54 +00:00
Aric Stewart 475a81a818 Added a few more stub implementations. 2005-01-26 19:41:13 +00:00
Aric Stewart 54c67dd1b1 - action.c is getting too big, so split out all the handling of
CustomActions into custom.c. Cleaned up a lot of the handling of
  custom actions including scripting actions and processing return
  codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
  same as internal function deformat_string. So broke deformat_string
  out and updated it to function as MsiFormatRecord and implemented
  MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
  the length for the LocalPackage name, not forcing a reboot when
  really we should just return ERROR_INSTALL_SUSPEND and handling
  REG_MULTI_SZ now that we can deformat the properly.
2005-01-25 20:17:09 +00:00
Mike McCormack 5af66fef43 Implement, test and document MsiDecomposeDescriptor. 2005-01-25 16:41:33 +00:00
Aric Stewart 68b0749471 Use the new registry functions in registry.c.
Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
some keys to the registry.
2005-01-25 11:05:37 +00:00
Aric Stewart a26aa0af4c Move the guid squishing functions out of msi.c and make a new
registry.c file. Also clean up all the various registry keys we need
to open and create to this module and modify the functions for msi.c
to call these functions.
2005-01-25 10:58:36 +00:00
Alexandre Julliard ee4f4a05c5 Avoid unnecessary run-time initializations. 2005-01-24 12:55:31 +00:00
Aric Stewart 0252761c0b The new Insert fixes now properly require ?,? instead of just ? for
the Insert call. This fix modifies the MSI_SetProperty query to be
correct.
2005-01-24 11:25:02 +00:00
Aric Stewart 9999e6ccdf An implementation of MsiSummaryInfoGetPropertyW based off of
MsiSummaryInfoGetPropertyA.
2005-01-24 11:24:35 +00:00
Mike McCormack 609f5514ac Indentation and style cleanup. 2005-01-24 11:22:00 +00:00
Mike McCormack 0c23885654 Move OpenQuery into msiquery.c and make it non-static. 2005-01-21 16:19:11 +00:00
Mike McCormack eb23257b7d Added stub implementations for MsiPreviewDialog and
MsiPreviewBillboard.
2005-01-21 10:17:01 +00:00
Mike McCormack cce387d1a6 Lock record in MsiViewExecute, move stubs to end. 2005-01-21 10:16:30 +00:00
Mike McCormack 5007de8b05 Fix and test inserting records. 2005-01-20 20:39:15 +00:00
Mike McCormack b3a7f37aaf Fix refcounting, use Interlocked functions. 2005-01-20 20:34:29 +00:00
Mike McCormack 48df747150 Fix a bug caused by freeing memory too soon in the table code. 2005-01-20 19:57:22 +00:00
Michael Stefaniuc b937407ee5 Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
2005-01-20 10:36:35 +00:00
Aric Stewart 2cae30b6cf Quite a few fixes:
- Allow for the queing of custom actions to trigger on the
  InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
  InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
2005-01-19 19:07:40 +00:00
Aric Stewart 2c0e46d9df Do a very basic first implementation of MsiConfigureProductExW for
msiexec /@  when run as a reboot.
Also add a number of new stubs for the office xp and 2k3 install and
startup process.
2005-01-19 16:58:03 +00:00
Aric Stewart 6269f00c33 Implementations for SelfRegModules and PublishFeatures.
Set default ACTION property for Install.
Deformat more than JUST properties properly. Allows for Files and
Component paths in deformat.
Properly deformat a LaunchCondition failure dialog box.
Resolve and save registry Keypaths.
Write the Features published keys more correctly. Still some
problems.
2005-01-17 13:40:39 +00:00
Aric Stewart 82a6a3b826 First pass implement ion of MsiQueryProductState[A/W] as well as a few
fixes for MsiGetComponentPath.
2005-01-17 13:39:57 +00:00
Aric Stewart 0de5671ee9 Actually start on an implemention for MsiGetComponentPathW that should
handle all keypaths that are files.
2005-01-14 17:05:53 +00:00
Marcus Meissner b7f6781590 Initialize rc in create_component_directory(). 2005-01-14 16:50:39 +00:00
Aric Stewart 516a9c70ed First implementation of the WriteIniValues action. 2005-01-14 15:59:26 +00:00
Aric Stewart dbb5d2a871 Custom actions can have null in their target parameters, handle that
without crashing. Also enable deformating of lines greater than 256
characters.
2005-01-14 15:12:27 +00:00
Paul Vriens 6a8268f372 Use Interlocked* functions in AddRef and Release. 2005-01-11 15:46:43 +00:00
Francois Gouget 87b0906789 Assorted spelling fixes. 2005-01-10 13:29:24 +00:00
Mike McCormack 921be0a87c Implement MsiRecordSetStreamA/W and add tests for records containing
streams.
2005-01-09 18:24:15 +00:00
Aric Stewart 2b2fecf88a Make all custom type 1 actions happen in a seperate thread and close
all handles for that thread when it exits. Honors the concept of
temporary MSI handles for custom actions.
2005-01-07 17:08:35 +00:00
Mike McCormack 8964082781 MsiCloseAllHandles only closes handles allocated in the calling
thread.
2005-01-06 20:43:04 +00:00
Mike McCormack 25c453aaf4 Add test for records. 2005-01-06 20:42:48 +00:00
Mike McCormack aaa4b42c16 Fix records according to test cases. 2005-01-06 20:42:25 +00:00
Aric Stewart 1416b10119 - Properly deformat keys written to the registry.
- Because directory mappings can change between the CostFinalize step
  and the InstallFiles step we need to do a final resolution of the
  target file name before installing.
2005-01-06 19:34:16 +00:00
Aric Stewart 00e1ecdce8 When checking for an existing .lnk shortcut extension on the filename
do not just search for '.' but actually verify it is '.lnk'.
2005-01-05 17:13:12 +00:00
Vitaly Lipatov 2dd31728d3 Get real screen properties. 2005-01-05 17:11:33 +00:00
Mike McCormack 23b291a642 Add a simple test case for MSI databases. 2005-01-05 13:26:34 +00:00
Aric Stewart 4e55343064 - CustomAction 35 should call SetTargetPath not just set the property.
- TARGETDIR and SOURCEDIR may not be entries 0 in the directory
  tables. So when resolving the folder we need to seek them out.
- When we handle SetTargetPath we need to be sure to recalculate the
  resulting paths as things with the now set Directory as the parent
  will change.
2005-01-04 20:47:20 +00:00
Aric Stewart def5cbfc0b Change how we install files so that we extract files as we need them,
cuts down on extraction time and unused files.
2005-01-04 20:42:58 +00:00
Mike McCormack ac6a413bf5 Remove unneeded whitespace, indent correctly. 2005-01-04 20:36:12 +00:00
Aric Stewart bd1bbc1768 Improve progress bar tracking. 2005-01-03 20:00:13 +00:00
Steven Edwards d06a464ce9 Add and fix some stubs. 2005-01-03 16:54:43 +00:00
Aric Stewart 6296de389a Be sure that set paths are terminated with a backslash. 2005-01-03 16:06:44 +00:00
Aric Stewart 51cf7d13c0 Free allocated buffers. 2005-01-03 14:29:09 +00:00
Mike McCormack 0f0b6c8c15 Implement thread safety for records. 2004-12-27 19:29:33 +00:00
Aric Stewart d900b5392d Parse out the full features by using the ',' character and do
comparisons based on the full feature names.
2004-12-27 19:12:35 +00:00
Aric Stewart ea32fb93a1 Continue when a duplicate component is found and loaded. 2004-12-27 19:09:16 +00:00
Aric Stewart fbdd70968d - Rework how we handle Feature and Component States. I have confirmed
from testing that, although documented nowhere, having ADDLOCAL on
  the install line overrides INSTALLLEVEL.
- Track all files extracted from cabinents as tempfiles so they can be
  removed at the end of the install to not leave uninstalled but
  uncabbed files laying around.
2004-12-27 19:06:22 +00:00
Aric Stewart ae1aa32c77 Move Install Features selection and evaluation into CostFinalize. 2004-12-27 19:02:59 +00:00
Aric Stewart 09d35c3c91 Allow for end of install actions. 2004-12-27 19:00:26 +00:00
Aric Stewart 8cc14a93a1 - Create the shortcut directory if it does not exist.
- Set the INSTALLLEVEL in CostFinalize if it is not set.
2004-12-27 18:56:30 +00:00