Commit Graph

312 Commits

Author SHA1 Message Date
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
Aric Stewart 2ad3ff880f Eliminate some fixed length buffers. 2004-12-27 18:50:00 +00:00
Aric Stewart fb9d11941f Include a System16Folder definition. 2004-12-27 17:43:37 +00:00
Aric Stewart 3c949ef412 Enable asynchronous dll custom action calls. 2004-12-27 17:09:40 +00:00
Aric Stewart ab013bb6db Added MsiSetExternalUIW. 2004-12-23 11:22:00 +00:00
Aric Stewart 454422d605 Make sure to include trailing backslash in path. 2004-12-23 11:20:50 +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 fa384f6b10 Move around and rename some functions. 2004-12-22 18:46:17 +00:00
Aric Stewart 74ad0d3ab7 Include the trailing backslash on the Windows volume. 2004-12-22 18:17:15 +00:00
Aric Stewart d0c971a62c Fix incorrect return code check. 2004-12-22 18:15:50 +00:00
Aric Stewart 259557038c Fix folder resolution. 2004-12-22 17:13:26 +00:00
Mike McCormack ba8200bf49 Remove more fixed length buffers, rewrite functions to return
malloc'ed memory.
2004-12-22 15:25:30 +00:00
Mike McCormack 1bd8d8a55a Fix selecting string columns and matching against a wildcard. 2004-12-22 15:22:12 +00:00
Mike McCormack 9db0e072b1 Remove a lot of fixed length buffers. 2004-12-22 15:05:07 +00:00
Aric Stewart 3d5c00e104 Let negative number be parsed correctly. Needed for accessing actions
with sequences such as -1.
2004-12-16 14:33:56 +00:00
Vitaly Lipatov 671267a177 Add ScreenX, ScreenY, ColorBits installer properties. 2004-12-16 14:31:59 +00:00
Vitaly Lipatov 5c4116bc66 Add description for MsiGetMode, MSIRUNMODE constants. 2004-12-16 14:29:25 +00:00
Eric Pouech 4056d7ef8c Fixed some errors in function prototypes. 2004-12-13 21:19:01 +00:00
Michael Stefaniuc 9fe94da2aa Add missing HeapFree's (found by smatch). 2004-12-10 15:24:52 +00:00
Ulrich Czekalla 63d757f044 Set the out buffer count to zero on read error. 2004-12-06 16:18:22 +00:00
Mike McCormack 6b395bab07 Fix transposition of 4 byte values when reading in table data from
storage.
2004-12-06 16:17:45 +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
Tom Wickline 5c38e1b561 Version resources cleanup. 2004-11-23 13:59:34 +00:00
Aric Stewart 1282d7ad44 Handle 3 more custom action types 2004-11-03 22:16:53 +00:00
Aric Stewart d906ef03ff Don't reregister ProgIds over and over, also write out the main key
before trying to register the Parent. This avoids loops if a ProgId
has itself as a parent or there is a loop in dependencies.
2004-10-22 22:06:31 +00:00
Aric Stewart 120009e9b4 Properly compare file versions when upgrading files so that new
versions get properly installed.
2004-10-08 23:35:35 +00:00
Francois Gouget 486d020c1b Don't define COBJMACROS in objbase.h.
Update the Wine sources accordingly.
2004-10-07 03:06:48 +00:00
Robert Shearman dce07c4040 Make sure paths end with a slash before concatenating file names. 2004-09-17 18:11:14 +00:00
Robert Shearman 3d7299b7a4 - Use FDI functions like native instead of advpack.ExtractFiles and
cabinet.Extract (which doesn't work with native cabinet)
- If MoveFile fails the message now displayes the correct last error
  and bails rather than silently breaking the install.
2004-09-10 22:29:49 +00:00
Kevin Koltzau 3f8d8bec55 Partial implementation of MsiGetFileVersionA/W. 2004-09-06 21:25:48 +00:00
Alexandre Julliard 39a696a166 Removed some uses of the non-standard ICOM_THIS macro. 2004-09-06 20:34:29 +00:00
Alexandre Julliard 7c1e9361a3 Added a few missing -private flags. 2004-08-27 19:15:54 +00:00
Aric Stewart bc6ce2b249 Free memory after we finish using it instead of just before. 2004-08-25 17:31:39 +00:00
Aric Stewart 47c94c0e4d Getting the string for a null field should not create an error. Add a
missing break.
2004-08-24 20:56:08 +00:00
Alexandre Julliard f714b39762 Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
macro.
2004-08-23 19:39:48 +00:00
Alexandre Julliard 25e2a320a7 Don't define BEGIN_INTERFACE in unknwn.h. 2004-08-22 21:38:46 +00:00
Vincent Béron 6fae1ce6fd Don't hardcode c:\windows paths in msi.dll. 2004-08-18 23:41:10 +00:00
Alexandre Julliard 48c4bb3c31 Get rid of the non-standard ICOM_VTABLE macro. 2004-08-12 23:00:51 +00:00
Alexandre Julliard 0467ce9fd7 Get rid of the non-standard ICOM_VFIELD macro. 2004-08-12 19:52:49 +00:00
Francois Gouget bf72af30d0 Modify widl to put the C COM macros inside an #ifdef COBJMACROS block
as is done in the Windows headers.
Add #define COBJMACROS where needed in Wine.
Fixes the compilation of the oleaut32/tests/olefont.c and
urlmon/tests/url.c conformance tests with the Windows headers.
2004-08-11 19:43:45 +00:00
Mike McCormack 4604e66094 Fix warnings found with -Wsign-compare. 2004-08-06 17:30:20 +00:00
Aric Stewart 6a787c7c40 Use correct calling convention for the custom action handlers. 2004-07-30 00:00:25 +00:00
Aric Stewart 8d81d671eb Make the msistring_makehash return something other than just 1 or
0. Also handle the case where the string or stored string is null.
2004-07-29 23:59:15 +00:00
Vincent Béron bbc3974aa5 Implement patching in msiexec. 2004-07-29 02:39:20 +00:00
Troy Rollo 7ade261c35 Fix parsing of string literals. 2004-07-29 02:36:06 +00:00
Vincent Béron d2df24b90f Implement logging in msiexec.
Correct MsiEnableLog{A,W} prototype.
2004-07-23 23:28:45 +00:00
Aric Stewart 84837d96a6 If the data table for a called action does not exist (for example
CreateFolders wants a CreateFolder table to read the data from) do not
fail, instead just do not perform the action.
2004-07-20 01:22:37 +00:00
Hans Leidekker 4104c622af Set VersionMsi property.
Accept a dot in a number value.
2004-07-19 21:49:15 +00:00
Vincent Béron 5c60510bc0 Implement the repair mechanism in msiexec, and stub it out in
msi.dll.
2004-07-19 21:19:45 +00:00
Mike McCormack f3c8b83055 Fix the return code of MsiDatabaseOpenView. 2004-07-19 19:35:05 +00:00
Francois Gouget 817c520909 Assorted spelling fixes. 2004-07-16 19:15:40 +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
Aric Stewart 55de9f40dd Update the MSI version to be the same as on win2k. 2004-07-14 21:42:50 +00:00
Aric Stewart d8b20cf53b Properly handle quoted number literals in MSI condition statements. 2004-07-12 23:31:18 +00:00
Hans Leidekker ba848ac195 Fix command line parsing. 2004-07-12 20:43:09 +00:00
Mike McCormack bb1194aeec Minor spelling fix. 2004-07-12 19:53:54 +00:00
Mike McCormack 36123b5564 Remove a piece of dead code causing a warning. 2004-07-12 19:53:05 +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
Alexandre Julliard 77b12768c9 Authors: Aric Stewart <aric@codeweavers.com>, Mike McCormack <mike@codeweavers.com>
Write the encoded GUIDs for product registration in the Installer
registry.
2004-07-09 19:43:29 +00:00
Aric Stewart a3149f83f7 Cleanup of actions. 2004-07-09 19:38:40 +00:00
Aric Stewart 20557b8c46 Add a stub for MsiModifyView, fix a couple of bugs. 2004-07-09 19:33:45 +00:00
Mike McCormack 3ece2461ef Cosmetic fixes. 2004-07-09 19:33:25 +00:00
Aric Stewart 7231a439b4 Implement logging. 2004-07-09 19:26:30 +00:00
Mike McCormack c4d7c8daa0 Allow binary fields with stream names longer than table names. 2004-07-06 19:00:46 +00:00
Aric Stewart 2cf222f9b7 Implemented CreateShortcut and PublishProduct. 2004-07-06 19:00:23 +00:00
Mike McCormack 24e9a34494 Fetch binary streams at the table level. 2004-07-06 18:56:12 +00:00
Aric Stewart d784600d81 MsiGetProperty should return empty strings on error. 2004-07-06 18:54:38 +00:00
Aric Stewart 8f0a761948 Implemented registering Classes and ProgID. 2004-07-06 18:53:11 +00:00
Aric Stewart fcb20c53f7 Implemented RegisterTypeLibraries. 2004-07-06 18:51:16 +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 5b936ca2fd Allow ADDLOCAL to override INSTALLLEVEL, implement LaunchConditions. 2004-07-06 18:47:09 +00:00
Aric Stewart 1ab0e4183e Fix bugs in resolve_folder. 2004-07-06 18:42:56 +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
Aric Stewart e2d4ea8141 Fix command line processing and folder paths. 2004-07-04 00:33:45 +00:00
Aric Stewart bdb2955296 Fix MsiGetTargetPath, MsiGetSourcePath and MsiSetTargetPath. 2004-07-04 00:32:48 +00:00
Aric Stewart 2e9b5f7c07 Use the newly implemented UPDATE code to set properties. 2004-07-04 00:31:17 +00:00
Mike McCormack 11553baa63 Implement the UPDATE query. 2004-07-04 00:30:02 +00:00
Mike McCormack f6492dc5ca Create the WHERE part of a query in one function call. 2004-07-04 00:27:48 +00:00
Aric Stewart ed7c4bc84c Implement SetTargetPath, start the basics for tracking UI level. 2004-07-04 00:26:54 +00:00
Mike McCormack 6e2bca34cf Cosmetic fixes. 2004-07-04 00:25:00 +00:00
Aric Stewart 36eee236ea Start implementing Feature and Component level install control. 2004-07-04 00:07:13 +00:00
Mike McCormack d3239926c2 Fix retrieval of nul records as strings. 2004-06-30 19:46:25 +00:00
Mike McCormack 99c2b9a994 Fix the INSERT query when inserting integers into a table. 2004-06-30 19:46:15 +00:00
Aric Stewart eb0e0df908 Start implementing MsiOpenPackage. 2004-06-30 19:38:36 +00:00
Mike McCormack de8674ec6f Set the storage file's GUID so native MSI recognizes it.
Fix crash when inserting multiple columns that are invalid.
2004-06-30 18:42:02 +00:00
Mike McCormack 16abc780e6 Hack field types, fix ref counting. 2004-06-30 18:27:41 +00:00
Mike McCormack b26087c30e Fix buffer overflow. 2004-06-30 18:27:23 +00:00
Mike McCormack abd259fd12 Fix the UPDATE query. 2004-06-30 18:24:33 +00:00
Aric Stewart c95a6aa6de Fix field numbering so the CREATE query works for multiple columns. 2004-06-30 18:24:21 +00:00
Aric Stewart 9cb2787a95 Fix the INSERT query. 2004-06-30 18:23:52 +00:00
Mike McCormack ab519f2a2c Make the SQL insert query work. 2004-06-30 18:18:27 +00:00
Steven Edwards 4679e78432 Fixed Extract prototype. 2004-06-30 18:16:35 +00:00
Aric Stewart 6e160f14dd Implement MsiGetSourcePath.
Implement Binary and Dword data type for registry writing.
2004-06-29 04:07:22 +00:00
Aric Stewart c75201f4a2 Handle custom actions type 1 and 2. 2004-06-29 04:04:13 +00:00
Mike McCormack 6fb0cee5d9 Dump database table names on startup. 2004-06-29 03:57:39 +00:00
Mike McCormack 7e168ee798 Fix refcounting of streams. 2004-06-29 03:49:54 +00:00
Aric Stewart e95136b7e3 Implement MsiGetTargetPathA/W. 2004-06-29 03:44:01 +00:00
Mike McCormack 0eecfdef67 Allow reading records containing streams. 2004-06-29 03:41:28 +00:00
Mike McCormack 8079d2ae33 Fixed the way the parser takes input strings. 2004-06-28 23:57:11 +00:00
Aric Stewart 401bd3f772 Start implementing actions. 2004-06-28 20:34:35 +00:00
Mike McCormack c0523aaa57 Pull the codepage from the string table. 2004-06-26 00:18:36 +00:00
Mike McCormack fb3f40b962 Fix crash that occurred when an invalid query string was deleted
twice.
2004-06-26 00:18:23 +00:00
Mike McCormack 9d66d94780 Implement queries by string value. 2004-06-26 00:11:08 +00:00
Francois Gouget 497709b9bb Assorted spelling and case fixes. 2004-06-15 20:26:45 +00:00
Christian Costa 7c1ca0f923 Added version info to MSI dll. 2004-05-18 20:41:47 +00:00
Patrik Stridvall 070db4e5de Fixed some issues found by winapi_check. 2004-05-17 21:08:31 +00:00
Raphael Junqueira 18cdbf1351 - add some prototypes/typedefs to msi.h
- implements some A -> W calls (W calls must be implemented)
2004-04-28 00:29:25 +00:00
Francois Gouget 6a6c85c6d8 Make Unicode const strings static so they are not copied to the stack
each time we enter the function.
2004-04-19 20:12:14 +00:00
Hans Leidekker c2da57e27b Correct spec entry for MsiLoadString*.
Pseudo stubs for MsiLocateComponent*.
2004-04-12 22:06:12 +00:00
Hans Leidekker c1d1eb2434 Correct spec entry for DllGetClassObject. 2004-04-09 19:05:34 +00:00
Raphael Junqueira 9191a9cd95 Implement DllGetClassObject, DllRegisterServer, DllUnregisterServer
(as the interfaces aren't documented we only have stubs).
2004-03-30 20:42:06 +00:00
Alexandre Julliard 9e4ed6460c .spec.c files are no longer used for 32-bit dlls. 2004-03-24 03:36:44 +00:00
Mike McCormack ce533b7a70 Start implementing the SQL insert query. 2004-03-20 19:18:46 +00:00
Mike McCormack 943a71e453 Fix handle allocation and the CREATE TABLE query. 2004-03-19 19:14:12 +00:00
Mike McCormack 068b4ec7d4 First go at write support. 2004-03-19 01:16:36 +00:00
Mike McCormack b040e4bcd2 When loading table data, split it up into rows. 2004-03-18 04:04:08 +00:00
Mike McCormack f5e1c13070 Move the string table out into a separate file, improve lookups. 2004-03-17 20:49:59 +00:00
Dmitry Timoshkov e51779df68 Explicitly specify output file names for bison. 2004-03-16 19:38:19 +00:00
Mike McCormack 14ec526004 Extend the parser to deal with the CREATE TABLE query. The query
doesn't do anything as yet.
2004-03-16 19:18:22 +00:00
Mike McCormack af54ef9ce1 Start implementation of MsiEvaluateConditionA/W. 2004-03-16 03:23:43 +00:00
Christian Costa fabcd27800 Added some stubs. 2004-02-17 21:05:44 +00:00
Alexandre Julliard 20b4585e3c Only link against libdxguid where necessary. 2004-01-27 00:11:16 +00:00
Alexandre Julliard 502f6c5634 Removed incorrect uses of DUMMYUNIONNAME. 2004-01-07 00:47:35 +00:00
Mike McCormack bd9d8a32e4 MsiOpenDatabase's szPersist parameter may be a string or a bitmask. 2003-11-05 01:50:19 +00:00
Mike McCormack d48f3b60fe Stub implementation for MsiVerifyPackage. 2003-11-05 01:42:02 +00:00
Mike McCormack 05d00f06de Implement MsiOpenProductW. 2003-11-05 00:34:51 +00:00
Mike McCormack e40da9f17c Some stub implementations. 2003-10-30 22:47:42 +00:00
Mike McCormack 6e86a2a81a Sql tokens are case insensitive in msi.dll. 2003-10-30 22:46:59 +00:00
Mike McCormack 367462798a Treat missing MSI tables as empty. 2003-10-28 21:49:06 +00:00
Mike McCormack 3871395140 Fixed MSI buffer overflow. 2003-10-28 21:43:14 +00:00
Mike McCormack 717107bb65 Fix string value lookups in MSI. 2003-10-28 21:09:10 +00:00
Dmitry Timoshkov 2581db8f6a Fixed some problems found while compiling and linking Wine under
Cygwin.
2003-10-14 05:27:43 +00:00
Daniel Marmier 4034ff36c0 Fixed warnings with gcc option "-Wwrite-strings". 2003-10-14 01:19:27 +00:00
Dimitrie O. Paun fbdfd910c1 Remove SYMBOLFILE and LDDLLFLAGS from Makefiles. 2003-10-11 01:09:15 +00:00
Mike McCormack afc02109a0 Fixed msi spec file. 2003-10-03 04:28:35 +00:00
Mike McCormack f92deed281 Remove references to HEAP_strdupAtoW. 2003-09-27 02:24:31 +00:00
Francois Gouget ae50013017 Fix the case of product and company names. 2003-09-08 19:38:45 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Robert Reif b7945a8ab3 Added a few stub implementations. 2003-09-01 23:57:06 +00:00
Robert Reif 528e6e9836 Added some missing functions. 2003-08-29 22:12:44 +00:00
Alexandre Julliard 985ba8ed87 Added missing dependency. 2003-08-15 03:52:35 +00:00
Mike McCormack 6386edc5d8 Partial implementation of the Microsoft Installer (msi.dll). 2003-08-13 01:27:48 +00:00