Commit Graph

255 Commits

Author SHA1 Message Date
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 7538f9ac19 msi: Use the newly added defines from the msidbSumInfoSourceType enumeration. 2008-07-22 13:10:38 +02:00
James Hawkins 5f11262da9 msi: Determine the installation context after reading properties from the command line. 2008-06-18 16:23:22 +02:00
Rob Shearman 4a75b8bf09 msi: Fix the value parameter of IWineMsiRemotePackage::FormatRecord to have the right level of indirection for an [out] parameter.
Remove the redundant size parameter and simplify the client code such 
that the remote function is only called once, with the value being 
automatically allocated. Add corresponding code on the server side to 
automatically allocate said value.
2008-04-17 11:39:37 +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 4439e0b57d msi: Make local functions static. 2008-03-01 12:18:40 +01:00
James Hawkins eedfacdfe7 janitorial: Remove links to any microsoft site. 2008-03-01 12:04:03 +01:00
Francois Gouget 4a7bedfe75 msi: Use 'HKCU\Software\Microsoft\MS Setup (ACME)' as a source for the default user and company names before falling back to the RegisteredXXX values. Fix the conformance test accordingly. 2008-02-19 13:39:24 +01:00
James Hawkins 8412a1363b msi: Set the UserLanguageID property. 2008-02-18 12:41:37 +01:00
James Hawkins 781e19aa4c msi: OriginalDatabase is the fully-expanded path to the original package if the package is local and installed from the command line. 2008-01-07 12:15:16 +01:00
James Hawkins 4121c9bbc6 msi: If the package is a URL, the OriginalDatabase property should be the URL and the DATABASE property should be the path to the local temporary package. 2008-01-07 12:15:01 +01:00
James Hawkins 1d42de71ea msi: Allow NULL parameters to be passed to the local MsiSetProperty. 2007-12-20 10:47:32 +01:00
Francois Gouget a39ea2e8ba msi: Add a trailing '\n' to Wine traces. 2007-12-18 12:32:55 +01:00
James Hawkins ce6e84c071 msi: Verify that the PID_PAGECOUNT and PID_REVNUMBER summary info properties exist. 2007-12-17 11:35:33 +01:00
James Hawkins 620862e385 msi: If the package doesn't exist, return ERROR_FILE_NOT_FOUND. 2007-12-17 11:35:23 +01:00
James Hawkins f933dd8b4f msi: Validate the parameters of MsiOpenPackage. 2007-12-17 11:35:17 +01:00
James Hawkins 8fab39cc60 msi: Add more tests for MsiOpenPackage. 2007-12-17 11:35:11 +01:00
James Hawkins 80894d1c52 msi: Properly release the record. 2007-12-12 13:48:46 +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 0e2db26fa3 msi: Only double the returned size when szValueBuf is NULL. 2007-10-16 12:48:07 +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 24e158e972 msi: Only double the size if the remote call is from MsiGetPropertyA. 2007-07-18 12:58:23 +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 cf3f442754 msi: Fix a copy and paste error. 2007-07-13 12:27:28 +02:00
James Hawkins 6b97f8905d msi: Handle remote calls to MsiEvaluateCondition. 2007-07-06 18:12:11 +02:00
James Hawkins cba1b1e1f4 msi: Handle remote calls to MsiFormatRecordW. 2007-07-06 18:12:00 +02:00
James Hawkins 29ce520df9 msi: Fix use of BSTRs. 2007-07-06 18:11:51 +02:00
James Hawkins c6741d83c6 msi: Handle remote calls to MsiSetInstallLevel. 2007-07-04 12:07:01 +02:00
James Hawkins 569ea392a7 msi: Handle remote calls to MsiGetLanguage. 2007-07-04 12:07:01 +02:00
James Hawkins 82b0066f70 msi: Handle remote calls to MsiSetComponentState. 2007-07-04 12:07:00 +02:00
James Hawkins 254e27ad31 msi: Handle remote calls to MsiGetComponentState. 2007-07-04 12:07:00 +02:00
James Hawkins 7d93e1a2a5 msi: Handle remote calls to MsiGetFeatureState. 2007-07-04 12:07:00 +02:00
James Hawkins f45b3ce60e msi: Handle remote calls to MsiSetFeatureState. 2007-07-04 12:07:00 +02:00
James Hawkins c96f1d524b msi: Handle remote calls to MsiGetMode. 2007-07-04 12:07:00 +02:00
James Hawkins f935e94adf msi: Handle remote calls to MsiSetTargetPath. 2007-07-04 12:06:59 +02:00
James Hawkins 582be6a73a msi: Handle remote calls to MsiGetSourcePath. 2007-07-04 12:06:59 +02:00
James Hawkins b7479be1bb msi: Handle remote calls to MsiGetTargetPath. 2007-07-04 12:06:59 +02:00
James Hawkins 99714f12cb msi: Handle remote calls to MsiSequence. 2007-07-04 12:06:59 +02:00
James Hawkins 0f321c0af9 msi: Handle remote calls to MsiDoAction. 2007-07-04 12:06:59 +02:00
James Hawkins be5eec45b5 msi: Handle remote calls to MsiProcessMessage. 2007-07-04 12:06:59 +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 4d668e06a2 msi: Handle remote calls to MsiSetProperty. 2007-07-03 12:59:58 +02:00
James Hawkins 4de8247c5a msi: Handle remote calls to MsiGetProperty. 2007-07-03 12:59:48 +02:00
James Hawkins e4658e05f2 msi: Handle remote calls to MsiGetActiveDatabase. 2007-07-03 12:59:32 +02:00
James Hawkins f9001058b0 msi: Add the IWineMsiRemotePackage interface. 2007-07-03 12:58:43 +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 c8a8f77abe msi: Set the MsiNetAssemblySupport property. 2007-06-13 11:18:42 +02:00
Andrew Talbot a0ae69a8d1 msi: Constify some variables. 2007-06-06 14:07:22 +02:00
James Hawkins b8e0b3c1c8 msi: Set the MsiNTProductType property. 2007-05-30 11:49:09 +02:00
James Hawkins e962b0a7df msi: Remove debugging printf statements. 2007-05-07 15:14:13 +02:00
Rob Shearman 22cd120d5d msi: Create the _Property table as a temporary table so that the properties aren't saved to the .msi file. 2007-04-25 11:49:29 +02:00
James Hawkins b4bb6e5b5d msi: Add the _Property table back, with tests. 2007-04-23 14:03:51 +02:00
Rob Shearman 77f6bc4f8d msi: Set the PackageCode property based on the "revision number" data in the summary information.
Add a test to show that PackageCode is set by MSI.
2007-03-05 16:43:26 +01:00
Rob Shearman 95f38b75fb msi: Set the Date, Time and VersionDatabase properties.
Add tests for these properties.
Update the todo list of properties to set.
2007-03-05 16:43:26 +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 8a38d3038c msi: Allocate a buffer in WCHARs not CHARs. 2007-01-26 12:55:50 +01:00
James Hawkins 0b652fe8c6 msi: Initialize sid_str to NULL. 2006-12-05 16:49:48 +01:00
James Hawkins 8ae81d0620 msi: Set the UserSID property. 2006-12-01 13:12:11 +01:00
Mike McCormack 0670ebc67b msi: Use MSI_IterateRecords when cloning properties. 2006-11-27 13:46:06 +01:00
Mike McCormack eadf2f82be msi: Split MSI_CreatePackage into two functions. 2006-11-14 11:43:39 +01:00
Mike McCormack 032b1389b1 msi: Delete the tempfile created by GetTempFileName. 2006-11-14 11:43:34 +01:00
Mike McCormack 3c2e79e727 msi: Defer package deletion until after the database is closed. 2006-11-14 11:43:30 +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
James Hawkins 08831b4a1e msi: Set the USERNAME and COMPANYNAME properties when initializing a package. 2006-10-19 13:34:42 +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
James Hawkins 563a50ab35 msi: Make internal functions static. 2006-10-09 14:40:08 +02:00
Mike McCormack f1d4646a49 msi: Win64 printf format warning fixes. 2006-10-05 11:32:32 +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 b183956193 msi: Properties are case sensitive. 2006-08-29 13:46:39 +02:00
Dan Kegel 337e1e202f msi: Callers of alloc_msihandle should handle failure. 2006-08-29 12:21:54 +02:00
Mike McCormack c8548fb88d msi: Set the ALLUSERS property to 1 always. 2006-08-25 20:04:50 +02:00
Mike McCormack 8ebbc8c0d2 msi: Reimplement msi_dup_property and msi_get_property_int. 2006-08-25 11:21:43 +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 fb7646beaa msi: Inform the user with an error message when the MSI file path is invalid. 2006-08-25 11:18:34 +02:00
James Hawkins 1ff96c63a8 msi: Download install cabinet files if the msi package is remote. 2006-08-10 10:55:23 +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
James Hawkins f10365bb5d msi: Don't crash if an empty record is given to MsiProcessMessage. 2006-08-02 11:44:55 +02:00
James Hawkins d1617bea17 msi: Download the MSI package if it is a remote URL. 2006-07-27 12:22:43 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Mike McCormack 4a7bb647bf msi: Use the source name of the msi package when it fails to copy. 2006-05-05 16:33:25 +02:00
Mike McCormack a92fe55cce msi: Fix some possible NULL pointer dereferences (Coverity). 2006-04-17 12:38:36 +02:00
Mike McCormack e1fdf3e24c msi: Don't crash when logging a record with only one field. 2006-03-22 21:36:16 +01:00
Robert Shearman d679bc5ab3 msi: Move the firing of control events to MSI_ProcessMessage.
Move the firing of control events from internal helper functions to
MSI_ProcessMessage so that custom actions can all cause control events
to be fired.
Added the firing of progress events.
2006-01-23 17:30:31 +01:00
Jeremy White 9d90ef017c msi: gcc 2.95 compatibility fix. 2006-01-13 13:53:16 +01:00
Mike McCormack 04a086ad65 msi: Define the property "Intel" if we're running on an Intel processor. 2005-12-31 13:14:34 +01:00
Mike McCormack 828280f4fd Set the Installed property if the product is already installed. 2005-11-15 12:00:13 +00:00
Francois Gouget 0edbaf7e80 Remove spaces before '\n' in traces. 2005-11-10 12:14:56 +00:00
Francois Gouget f4c0524ec6 Assorted spelling and case fixes. 2005-11-10 11:39:07 +00:00
Mike McCormack 3e6f31bf0b Fix and test MsiGetProperty and MsiSetProperty. 2005-10-31 14:07:37 +00:00
Mike McCormack ec5edeebf4 Define MSIDBOPEN_ constants using LPCWSTR when compiling Wine. 2005-10-30 19:21:51 +00:00
Mike McCormack 9ba8ba30bb Use "static const" rather than "const static" as gcc -W complains
about the former.
2005-10-30 19:04:26 +00:00
Mike McCormack 744e22c7df Fix various query related memory leaks. 2005-09-26 10:55:18 +00:00
Mike McCormack 786920b7b6 Handle copying of the install package to a temporary file in one place
only.
2005-09-25 15:14:32 +00:00
Mike McCormack 8dc28d5306 Added memory allocation inline functions (part 1). 2005-09-20 11:57:19 +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 1ceb25ba7b Convert progids to a standard list. 2005-09-06 09:26:18 +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 1256a0c323 Don't dereference variables in a trace. 2005-08-25 09:51:03 +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
Aric Stewart 639048b99a If MsiGetProperty(A/W) is called with a NULL for the value buffer but
a value in the size for the value buffer, then Msi fills in the size
of the value into the pointer for size.  This is tested and confirmed
with native MSI.
2005-07-11 14:22:13 +00:00
Aric Stewart b95beae8f9 InstallShield does a number of actions using DoAction before the
Install starts so the PackageCode needs to be loaded on OpenPackage
instead of the beginning of the install process.
2005-07-08 14:19:00 +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 b402f04851 Use standard lists in the event subscription code. 2005-06-06 15:40:15 +00:00
Mike McCormack 64de949cdd More -Wmissing-declarations and -Wwrite-strings warning fixes. 2005-05-31 09:30:28 +00:00
Aric Stewart 16b667ab01 Quoting fixes. 2005-05-20 09:40:14 +00:00
Mike McCormack d31f12964b Only tables can be backquoted, strings must be single quoted. 2005-05-19 11:15:37 +00:00
Marcus Meissner 1fa2da0756 Set PhysicalMemory property from system data. 2005-05-04 10:37:05 +00:00
Mike McCormack 77a19ed8e6 Replace instances of HeapAlloc/MultiByteToWideChar with the internally
defined strdupAtoW.
2005-03-24 19:04:06 +00:00
Juan Lang 5ebd4e938e - make sure msihandle2msiinfo is correctly matched with msiobj_release
- don't do redundant NULL checks
2005-03-10 11:15:40 +00:00
Mike McCormack 10e5c9e834 Remove const declaration from non-const function. 2005-02-16 16:07:11 +00:00
Mike McCormack fd91013b46 Add more dialog controls, do something when they're clicked on. 2005-02-02 09:55:51 +00:00
Mike McCormack 479213c455 Implement MsiPreviewDialog. 2005-01-28 12:39:57 +00:00
Mike McCormack 279ef15646 - implement MsiOpenPackageEx, and forward MsiOpenPackage there
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
2005-01-27 11:12:16 +00:00
Aric Stewart 409d3f62cd MsiGetProperty does not return any error on missing properties. 2005-01-27 10:42:45 +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
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
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
Vitaly Lipatov 2dd31728d3 Get real screen properties. 2005-01-05 17:11:33 +00:00
Aric Stewart 51cf7d13c0 Free allocated buffers. 2005-01-03 14:29:09 +00:00
Aric Stewart fb9d11941f Include a System16Folder definition. 2004-12-27 17:43:37 +00:00
Aric Stewart 62cd1e03c3 Blank the property buffers even if the property is not found. 2004-12-22 18:47:54 +00:00
Aric Stewart 74ad0d3ab7 Include the trailing backslash on the Windows volume. 2004-12-22 18:17:15 +00:00
Aric Stewart 259557038c Fix folder resolution. 2004-12-22 17:13:26 +00:00
Mike McCormack 9db0e072b1 Remove a lot of fixed length buffers. 2004-12-22 15:05:07 +00:00
Vitaly Lipatov 671267a177 Add ScreenX, ScreenY, ColorBits installer properties. 2004-12-16 14:31:59 +00:00
Mike McCormack 181705cbbd - Don't limit the size of the property that can be retrieved by
MsiGetProperty.
- Make MsiGetProperty A/W implementations more consistent.
2004-11-28 14:53:46 +00:00
Kevin Koltzau 3f8d8bec55 Partial implementation of MsiGetFileVersionA/W. 2004-09-06 21:25:48 +00:00
Vincent Béron 6fae1ce6fd Don't hardcode c:\windows paths in msi.dll. 2004-08-18 23:41:10 +00:00
Hans Leidekker 4104c622af Set VersionMsi property.
Accept a dot in a number value.
2004-07-19 21:49:15 +00:00
Aric Stewart 9c76b14469 Implement the functionality that allows one to call MsiOpenPackage
with #nnn where nnn is a string representing the handle to an open
database.
2004-07-14 21:43:49 +00:00
Mike McCormack c90c781a32 Implement MsiVerifyPackage, cosmetic fixes. 2004-07-09 22:58:27 +00:00
Alexandre Julliard a7a6f5f31c Authors: Mike McCormack <mike@codeweavers.com>, Aric Stewart <aric@codeweavers.com>
Refcount all objects, and use pointers internally.
2004-07-09 22:25:34 +00:00
Aric Stewart 7231a439b4 Implement logging. 2004-07-09 19:26:30 +00:00
Aric Stewart 2cf222f9b7 Implemented CreateShortcut and PublishProduct. 2004-07-06 19:00:23 +00:00
Aric Stewart d784600d81 MsiGetProperty should return empty strings on error. 2004-07-06 18:54:38 +00:00
Aric Stewart b942e18636 Implemented ProcessComponents. 2004-07-06 18:50:02 +00:00
Aric Stewart d2c395ad50 Send progress and action messages. 2004-07-06 18:48:15 +00:00
Aric Stewart 7d3e5973fe Activate features and components based on their various conditions. 2004-07-04 00:36:58 +00:00
Aric Stewart ec688fb4e0 Beginnings of costing and organizing into components and features. 2004-07-04 00:35:52 +00:00