Commit Graph

546 Commits (8defc289511eb4b57ca9c1cad36431d605ef6bd1)

Author SHA1 Message Date
Mike McCormack 018bc9a0cd Test and fix the size of stream fields in a record. 2005-05-27 09:26:13 +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 3594e45ab6 First pass at writing out CurVer keys for ProgIds. Also print a
message for the actions we skip. Lines up with native MSI output logs
for ease of comparison.
2005-05-26 16:08:58 +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
Aric Stewart 825920a090 Implement the [!file] format to produce the short filename. 2005-05-25 17:49:49 +00:00
Mike McCormack 3244265855 Simplify parsing of the FROM keyword. 2005-05-24 09:49:01 +00:00
Aric Stewart bec5549da6 Double terminate SZ_MULTI properly.
ClassInfo and ExtensionInfo are also written for ADVERTISED
components.
2005-05-23 16:24:20 +00:00
Aric Stewart fefad8fcf2 Fix a leaking handle.
Make MsiCollectUserInfo more internally consistent.
Thanks to Mike McCormack.
2005-05-23 16:23:54 +00:00
Mike McCormack b18c262d57 Improve parser error checking. 2005-05-23 16:23:11 +00:00
Mike McCormack 0093007b32 Track memory allocations in the SQL parser. 2005-05-23 12:08:17 +00:00
Mike McCormack f50e9aadea Simplify parsing of select query. 2005-05-23 11:49:49 +00:00
Mike McCormack 0d1c3a14fc Create the ORDER BY view in a single call. 2005-05-23 10:27:00 +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
Stefan Leichter f23029f647 Update version resource of msi.dll to current version shipped from
windows update.
2005-05-23 09:49:50 +00:00
Juan Lang 806be361d0 Turn handled errors from ERRs to WARNs or TRACEs. 2005-05-20 19:16:50 +00:00
Aric Stewart d97e2c3058 We have a stub for MsiGetUserInfoA we should use it. 2005-05-20 18:59:20 +00:00
Aric Stewart 8a6d5e5847 Fix a leaking handle in MsiConfigureProductExW.
Implement MsiGetProductCodeW.
Implement MsiGetUserInfoW.
Implement MsiCollectUserInfoA/W.
2005-05-20 18:59:11 +00:00
Aric Stewart ec4df18833 Write the RegOwner and RegCompany keys as blank if they do not exist
when doing the RegisterUser action.
2005-05-20 18:59:01 +00:00
Aric Stewart 98e3808261 Fix quoting on queries.
Respect '+' and '*' in WriteRegistryValues to only create the key if
it does not already exist. Prevents overwriting values with NULL.
2005-05-20 09:40:42 +00:00
Aric Stewart 16b667ab01 Quoting fixes. 2005-05-20 09:40:14 +00:00
Aric Stewart 721c11a52a Correct query quoting based on Mike's patch.
Also more error messages about return codes from custom actions and
ignore an error that we should be ignoring.
2005-05-20 09:40:02 +00:00
Mike McCormack d31f12964b Only tables can be backquoted, strings must be single quoted. 2005-05-19 11:15:37 +00:00
Juan Lang 88adb53bf0 Don't fail in RegisterFonts if the Fonts table is missing. 2005-05-19 11:15:24 +00:00
Aric Stewart d5bfaf7897 A few small fixes. 2005-05-18 17:46:38 +00:00
Aric Stewart c5a1443fd9 We cannot internally load the files in FileCost because that action
may be skipped or not called. So do it in CostInitialize.
Quote the file path in SelfRegModules.
Do not write squished null guids to the feature registration.
2005-05-18 17:46:12 +00:00
Aric Stewart 98d9cec74c Correctly use short filenames from uncompressed file sources. Also
default feature and component install states to ABSENT instead of
UNKNOWN.
2005-05-18 13:23:52 +00:00
Aric Stewart 8a6a9a6659 Some error messages and strcmp changes suggested by Dmitry. 2005-05-18 09:44:38 +00:00
Aric Stewart 6186b2beaf Correct a problem with parse_data if binary data was not in full bytes.
More properly handle uncompressed file sources, fix the creating and
parsing of Source Directories.
2005-05-16 21:37:35 +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 bd07966c8f Avoid some non-standard str functions. 2005-05-11 12:58:22 +00:00
Stefan Leichter f483ca611e Added minimal implementation of MsiCreateAndVerifyInstallerDirectory. 2005-05-11 12:01:12 +00:00
Mike McCormack c1f2cf1fba - make sure to free the string table when closing the database
- don't free szPersist in MsiOpenDatabase if it's not a string
2005-05-10 16:00:19 +00:00
Juan Lang ac0ba1a241 Partially implement AppSearch for RegLocator-type searches. 2005-05-10 08:27:00 +00:00
Aric Stewart fa468e64d5 Fix a few leaking object handles. 2005-05-09 19:33:50 +00:00
Alexandre Julliard 34fa35dc99 Added rules for building import libraries in the individual dll
makefiles, and added support for building a .def.a static import
library too.
2005-05-09 14:42:30 +00:00
Alexandre Julliard d62356aa1e Added rules to build import libraries in the individual dll makefiles.
Generate import libraries with the right name right away instead of
using an intermediate .spec.def file.
2005-05-07 12:39:52 +00:00
Aric Stewart 2494e4a52a Add a missing msiobj_release that was resulting in a leaked object
with each MsiCreateRecord call.
2005-05-07 12:13:08 +00:00
Aric Stewart 41fbee0e83 Correct a missing MsiCloseHandle(). 2005-05-07 12:12:56 +00:00
Francois Gouget 63b596d7ea Tweak the documentation to make winapi_check happy. 2005-05-06 14:33:02 +00:00
Marcus Meissner 1fa2da0756 Set PhysicalMemory property from system data. 2005-05-04 10:37:05 +00:00
Vincent Béron 0fa5e855fb Use SUBLANG_NEUTRAL for French resources. 2005-05-04 09:52:47 +00:00
Aric Stewart 2b8bf597b5 Correct user component publication.
Implement MsiEnumComponentQualifiers.
2005-04-28 18:28:11 +00:00
Aric Stewart ece85e0cf0 Implement MsiQueryFeatureStateW. 2005-04-28 12:01:06 +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 afcaf83ed7 Correct a leaking hkey handle. 2005-04-27 08:11:52 +00:00
Aric Stewart 1b54881209 Expand some handling of special properties in MsiGetProductInfo. 2005-04-26 14:30:31 +00:00
Mike McCormack f47c0b2e29 Declare MsiExportDatabase* in the spec file, and fix a typo. 2005-04-26 14:30:15 +00:00
Francois Gouget 5ffd9888cd Tweak the API documentation to silence winapi_check warnings. 2005-04-22 19:04:41 +00:00
Aric Stewart 7e181f49a8 Fix for the return codes for the Qualified component calls. They are
not INSTALLSTATEs but rather success values.
2005-04-21 17:24:27 +00:00
Francois Gouget 3ef8c51c8a Tweak the API documentation to silence winapi_check warnings. 2005-04-20 15:18:42 +00:00
Mike McCormack ae8c0ab55b Test MsiSummaryInfoGetProperty reading an empty property. 2005-04-20 14:24:30 +00:00
Mike McCormack 7932d76a1d Fix loading of the summary information. 2005-04-20 14:24:14 +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
Francois Gouget 3b36eee083 Add trailing '\n's to ok() calls. 2005-04-19 09:48:44 +00:00
Peter Berg Larsen 407409f27f Remove 2 identicals calls to strlenW. 2005-04-18 15:36:59 +00:00
Peter Berg Larsen 6e3bcb5a54 Replace strncpy with memcpy or lstrcpyn. 2005-04-18 10:30:55 +00:00
Juan Lang c33d2621eb Log missing environment vars for easier debugging. 2005-04-12 10:15:09 +00:00
Steven Edwards 98efef18d4 Avoid using ver.h in favor of winver.h. 2005-04-11 16:10:33 +00:00
José Manuel Ferrer Ortiz 4f50a2c0dc Spanish translations updated. 2005-04-11 13:01:46 +00:00
Mike McCormack 499a887d0f Load and display bitmaps in the dialogs. 2005-04-11 12:47:20 +00:00
Francois Gouget 6b10c324c5 Assorted spelling fixes. 2005-03-30 17:08:31 +00:00
Aric Stewart 6e821739f2 Make sure the GUID of the typelib we are registering matches the guid
requested from MSI. If not search the given typelib file to find the
typelib requested to register.
2005-03-30 10:19:08 +00:00
Mike McCormack 180f04059b Split out database functions, remove dependence on wine/unicode.h. 2005-03-29 11:28:57 +00:00
Peter Berg Larsen e732fc023d Janitorial: Get rid of strncpy/strncpyW. 2005-03-28 14:17:51 +00:00
Mike McCormack 30e388af51 Use strdup, implement MsiDatabaseImportA. 2005-03-25 16:38:26 +00:00
Jakob Eriksson 9ed61de9a2 Get rid of HeapAlloc casts. 2005-03-24 21:01:35 +00:00
Mike McCormack 77a19ed8e6 Replace instances of HeapAlloc/MultiByteToWideChar with the internally
defined strdupAtoW.
2005-03-24 19:04:06 +00:00
Aric Stewart f8f64406fc If running in UI mode, then display the UI mode dialogs at the end of
the installs.
2005-03-24 19:03:45 +00:00
Mike McCormack bf0f6a22d2 Make sure there's only one place we allocate dialog controls. 2005-03-24 15:09:31 +00:00
Mike McCormack c3ab871ff9 Clean up registry functions. 2005-03-24 15:09:18 +00:00
Francois Gouget 93416cdaf7 Assorted spelling fixes. 2005-03-23 13:15:18 +00:00
Marcus Meissner 6d32d63979 Fixed MsiDatabaseImportA, MsiDatabaseImportW, and
MsiCreateAndVerifyInstallerDirectory stub parameter counts.
2005-03-23 10:24:53 +00:00
Jakob Eriksson 4364d06821 Windows 98 doesn't like it when we delete the tempfile. 2005-03-22 18:16:53 +00:00
Aric Stewart 8760ed97f2 Test package creation. 2005-03-22 16:45:55 +00:00
Hans Leidekker 8cf1389409 Dutch resource translation. 2005-03-22 16:39:25 +00:00
Mike McCormack 4c20cc6f0f - test cases for summary information
- fix memory leaks
2005-03-19 17:08:34 +00:00
Mike McCormack 758a69515b Implement summary information loading and saving. 2005-03-18 14:01:39 +00:00
Mike McCormack 95dea4969a - Rename dupstrW to strdupW, and remove duplicate definition.
- Move definition of string manipulation functions to msipriv.h.
2005-03-16 11:31:35 +00:00
Juan Lang 35c65cf731 Fix a regression in AppSearch. 2005-03-10 17:24:20 +00:00
Juan Lang 3d4ce5c2c1 Implement MsiEnumRelatedProducts. 2005-03-10 17:24:05 +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
Ulrich Czekalla e15e5179c2 Allocate space for terminating null. 2005-03-08 16:44:51 +00:00
Ulrich Czekalla 5f08b9f7b0 Fix a memory leak. 2005-03-08 16:23:36 +00:00
Ulrich Czekalla 64db533173 Add support for radio buttons. 2005-03-04 12:32:08 +00:00
Francois Gouget fbb3343547 Assorted spelling fixes. 2005-03-02 13:53:50 +00:00
Alexandre Julliard d0ee9f9309 Avoid spaces before preprocessor directives, that's not portable. 2005-03-02 12:23:20 +00:00
Aric Stewart 8e233e9b9f Text reformatting patch to clean up all the static strings. 2005-03-01 11:45:19 +00:00
Juan Lang 014ad3ba21 Don't hardcode windows or system directories, correct a typo. 2005-03-01 10:41:52 +00:00
Dmitry Timoshkov dd1ba8a7d8 Remove a temporary msi database file. 2005-02-26 17:41:36 +00:00
Jon Griffiths eb5bf7dd38 Documentation spelling fixes. 2005-02-25 14:07:56 +00:00
Aric Stewart 0af2487a51 Implement the action RegisterFonts. 2005-02-25 14:00:09 +00:00
Aric Stewart b6bc6aa6f8 Add the ExecuteAction handler.
Store the keypath, and do refcounting and registration of SharedDLLs.
Fix a bug with handing dword values in the registry.
Fix bugs with writing registry keys where value == NULL.
Make use of msidefs.h.
Lay some groundwork for uninstalls.
2005-02-24 12:47:43 +00:00
Aric Stewart af812605fb Do some basic work with registry component paths. 2005-02-24 10:05:53 +00:00
Ulrich Czekalla fa85f0132b Prevent accessing freed memory in failure case. 2005-02-24 10:05:27 +00:00
Aric Stewart 713dc8f60c Make sure formats like [\\]] and [\\[] work properly. 2005-02-23 12:44:25 +00:00
José Manuel Ferrer Ortiz f151e9b174 Added MSI Spanish resources. 2005-02-23 12:41:09 +00:00
Mike McCormack 09b8264f1d Make sure strings are null terminated. 2005-02-22 19:31:45 +00:00
Aric Stewart 78a04e39db Update the installed state for components during CostFinalize. Laying
groundwork to be able to start processing uninstall logic as well.
2005-02-22 15:47:00 +00:00
Steven Edwards 5f8797f1fd Correct typo. 2005-02-22 14:53:05 +00:00
Aric Stewart 7e7b8cf4ef Fixed problems with my code for finding the PackageCode. 2005-02-18 20:00:34 +00:00
Jonathan Ernst a37a4f6ce6 Add French resources. 2005-02-16 21:10:02 +00:00
Mike McCormack 0b1b703fdd Move product, feature and component enumeration functions to
registry.c.
2005-02-16 17:52:53 +00:00
Mike McCormack 3988d9c53b Add a border to the edit control, add some more controls. 2005-02-16 16:25:36 +00:00
Mike McCormack 9bef4830a5 Fix up the summary information code a little. 2005-02-16 16:25:09 +00:00
Aric Stewart 2e24400cc9 Stubs for MsiUseFeature. 2005-02-16 16:24:38 +00:00
Mike McCormack 10e5c9e834 Remove const declaration from non-const function. 2005-02-16 16:07:11 +00:00
Mike McCormack e2df8814ea Allow MsiViewExecute to be called twice on the same query. 2005-02-16 16:06:05 +00:00
Mike McCormack 64623067c3 Implement MsiDatabaseGetPrimaryKeys. 2005-02-16 16:05:11 +00:00
Mike McCormack fa5cbb5a0f MsiGetComponentPath should allow null pointers for pcchBuf and
lpPathBuf.
2005-02-16 16:04:36 +00:00
Henning Gerhardt d0cc21f45f Add/updated German resources. 2005-02-15 20:46:19 +00:00
Marcelo Duarte 574c0edabb Update the resources for Portuguese. 2005-02-14 11:12:30 +00:00
Marcus Meissner 30ed10004b Output some more informations.
Mark one global variable static.
2005-02-14 11:07:55 +00:00
Mike McCormack 1afddb3cd3 Implement SQL delete query. 2005-02-14 11:07:13 +00:00
Francois Gouget 4d801b66e6 Assorted spelling fixes. 2005-02-10 19:19:35 +00:00
Mike McCormack d42081f8c9 Update headers, add MsiGetUserInfoA stub implementation. 2005-02-10 18:57:42 +00:00
Aric Stewart fccb667f0e Added stubs for MsiGetShortcutTargetA/W. 2005-02-10 17:10:14 +00:00
Aric Stewart c7e88e0820 Add the RegisterUser action. 2005-02-10 17:09:44 +00:00
Ulrich Czekalla 3440035341 Handle 0 length buffers in MSI_FormatRecordW.
Remove unused buffer in deformat_string.
2005-02-09 22:22:25 +00:00
Aric Stewart c2abd83079 Do not track the temp files for custom actions based on the name from
the table because then we get conflicts and files not tracked or
cleaned up.
2005-02-09 14:05:24 +00:00
Aric Stewart 187da09b2d Implement RegisterExtensionInfo and RegisterMIMEInfo. 2005-02-09 13:58:20 +00:00
Mike McCormack f51ad46a7a Handle a number as a parameter for custom action 19. 2005-02-09 13:57:54 +00:00
Aric Stewart 0f65057aed Do not limit properties to 256 characters when evaluating them. 2005-02-09 13:26:16 +00:00
Mike McCormack 34d4a02bc5 - add support for Edit boxes in MSI dialogs
- run the message loop when waiting for threads or processes
2005-02-09 13:24:31 +00:00
Mike McCormack 17cfa28216 Fix a memory leak in MsiConfigureProductExW. 2005-02-09 13:22:49 +00:00
Aric Stewart 6ed10c8013 Make a temp file for each dll saved for custom actions. This prevents
name collisions from causing custom actions to fail.
2005-02-08 14:27:06 +00:00
Aric Stewart c1e5c4a907 Add logic to be able to resolve the SourceDir based on
CurrentPath. Also add logic to get the source locations of a file if
it is not in a cabinet.
2005-02-08 14:26:49 +00:00
Mike McCormack ef1d367bcc Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE. 2005-02-08 13:44:25 +00:00
Mike McCormack e7488b8f79 - fix the dialog font
- allow waiting on a handle while running the message loop
2005-02-08 12:55:47 +00:00
Juan Lang 5f35a32f60 Identifiers evaluate to true if they are non-empty, regardless of
value.
2005-02-08 12:13:49 +00:00
Mike McCormack 65fb09183b Implement and document MsiLoadString. 2005-02-08 12:12:29 +00:00
Mike Hearn e0803f1ac4 Correctly ensure properties set from resolved directory paths are
backslash terminated.
2005-02-08 12:11:54 +00:00
Juan Lang 1d936f45ae If a full path isn't specified, search across all fixed drives. 2005-02-08 12:08:49 +00:00
Mike McCormack fe0f128d06 - implement checkboxes in dialogs
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
2005-02-03 10:41:59 +00:00
Juan Lang c33efbeb7d Simplify AppSearch error checking. 2005-02-03 10:41:41 +00:00
Mike McCormack fd91013b46 Add more dialog controls, do something when they're clicked on. 2005-02-02 09:55:51 +00:00
Aric Stewart 3b38dc6864 Cleanup processing a bit more.
Allow for nested keys to work properly.
2005-02-02 09:30:22 +00:00
Aric Stewart a905217b3e Fix a copy and paste error, check for a null value and discard
unneeded errors.
2005-02-02 09:30:05 +00:00
Mike McCormack 79a6626b64 MsiEvaluateCondition returns an error when passed NULL as a
condition.
2005-02-02 09:29:46 +00:00
Aric Stewart d6ecf58e2f Finish up the framework by stubbing out all the remaining Standard
actions.
A fix to deformat_string so it only returns a null return if you
provided a null buffer.
2005-02-02 09:29:30 +00:00
Aric Stewart 3f3186091e Continued work to simplify the ProcessAction call, also split it into
a ProcessAction and ProcessUIAction for future dialog box work.
Also fix a bug in deformat_string where i was not freeing the created
record.
2005-02-01 18:46:26 +00:00
Juan Lang df9d01409b Partially implement AppSearch action. 2005-02-01 14:22:31 +00:00
Aric Stewart 5eaf9cec86 Added some more suminfo stubs. 2005-02-01 14:21:03 +00:00
Aric Stewart 4590c7ddee A reworking of format.c to remove the recursion, clean things up and
stabilize behavior to match windows.
2005-01-31 20:41:11 +00:00
Aric Stewart 90c57396f4 Eliminate the giant if.. else if block from ACTION_ProcessAction in
favor of a table of handlers.
Return code of the install should not depend on the return code of the
final action.
Update component installed states as they are installed so that
conditions based on component states are at least a little more
correct.
Add icon and argument when regestering clsids.
Add a stub for ResolveSource because we do that work just not in
ResolveSource like we should.
When quering a Component state return the correct state.
2005-01-31 16:23:12 +00:00
Aric Stewart e495e7e34c Setting a record to an empty string is the same as making it null. 2005-01-31 11:30:59 +00:00
Mike McCormack 479213c455 Implement MsiPreviewDialog. 2005-01-28 12:39:57 +00:00
Aric Stewart 6b16f29fc0 Enable the updating of Feature and thus the resulting component
states.
Run the end of install actions for suspend and user exit states as
well.
Start putting in place a currently running state for future ui use.
2005-01-27 11:12:56 +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
Mike McCormack c04ce10bdd Test different types of dodgy queries. 2005-01-27 10:43:27 +00:00
Aric Stewart c169f717ee Implement custom action type 19, Halt install and display error
message.
2005-01-27 10:43:12 +00:00
Aric Stewart 409d3f62cd MsiGetProperty does not return any error on missing properties. 2005-01-27 10:42:45 +00:00
Francois Gouget da8b3dd7f2 Assorted spelling fixes. 2005-01-26 21:09:04 +00:00
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
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