Commit Graph

329 Commits

Author SHA1 Message Date
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
Francois Gouget d7119f2b73 msi: Remove WINAPI on static functions where not needed. 2008-11-28 12:54:37 +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
Andrew Talbot 1c9886d6e7 msi: Sign-compare warnings fix. 2008-10-21 11:45:44 +02:00
James Hawkins 1484c6272d msi: Add a stub implementation of MsiDetermineApplicablePatches. 2008-10-09 13:01:18 +02:00
Jacek Caban 417134709d msi: Added MsiInstallMissingComponentW stub implementation. 2008-10-07 12:12:54 +02:00
Louis Lenders e16e15bf0c msi: Add stub for MsiSetExternalUIRecord. 2008-09-25 13:27:38 +02:00
James Hawkins 63064f7a45 msi: Handle features installed as source in MsiQueryFeatureState. 2008-08-25 11:40:02 +02:00
James Hawkins 39b874706c msi: Handle components installed as source in MsiQueryComponentState. 2008-08-21 11:44:05 +02:00
James Hawkins 6e63953b4c msi: Also check the LocalPackage install property when searching for the product package. 2008-08-18 17:15:46 +02:00
James Hawkins 9b426be0ee msi: Reimplement MsiOpenProduct. 2008-07-31 13:04:36 +02:00
James Hawkins cbf32ff28a msi: Set the ALLUSERS property for the machine context. 2008-07-29 12:20:03 +02:00
James Hawkins 0b240c7aa3 msi: Handle the INSTALLSTATE_ABSENT state in MsiConfigureProductEx. 2008-07-29 12:19:57 +02:00
James Hawkins 9518d7f8c7 msi: Properly locate the published product in MsiConfigureProductEx. 2008-07-29 12:19:51 +02:00
James Hawkins ac976c94c8 msi: Validate the szProduct parameter of MsiConfigureProductEx. 2008-07-29 12:19:44 +02:00
Andrew Talbot 0f75796a28 msi: Remove unneeded address-of operators from array names. 2008-07-11 14:06:19 +02:00
James Hawkins 41fe12f149 msi: Reimplement MsiGetUserInfo. 2008-06-24 12:15:48 +02:00
James Hawkins 72fedf7d88 msi: Handle the machine context in MsiQueryFeatureState. 2008-06-24 12:15:38 +02:00
James Hawkins 200eba3b94 msi: Handle the user managed context in MsiQueryFeatureState. 2008-06-24 12:15:31 +02:00
Francois Gouget 42a61d7ed7 Assorted spelling fixes. 2008-05-06 16:10:20 +02:00
Austin English 5644f05edf msi: Spelling fixes. 2008-04-08 12:25:13 +02:00
James Hawkins e21a26e47b msi: Test and reimplement MsiQueryProductState. 2008-04-07 11:27:24 +02:00
Rob Shearman 58130dde08 msi: Passing NULL for szBuffer and NULL for pcchValueBuf into MsiGetProductInfo{A, W} shouldn't crash.
Add a test for this.
2008-03-12 19:21:27 +01:00
James Hawkins ad70693539 msi: Implement MsiGetProductInfoEx. 2008-03-04 11:54:21 +01:00
Marcus Meissner eb836b718f msi: Initialize type (Coverity). 2008-02-28 10:50:57 +01:00
James Hawkins 6e2048bbc7 msi: Read the source list properties from the user-unmanaged context. 2008-02-26 11:20:18 +01:00
Gerald Pfeifer db70edfc82 msi: Remove unused parameter to msi_comp_find_prodcode(). 2008-02-19 18:08:38 +01:00
James Hawkins bbdf79bc8c msi: Convert REG_DWORD properties to strings in MsiGetProductInfo. 2008-02-18 12:41:37 +01:00
Rob Shearman e35bd05082 msi: Add stub implementation of MsiIsProductElevatedA/W. 2008-02-15 09:59:59 +01:00
James Hawkins 4cc569cce6 msi: Read the language info from the file. 2008-02-12 22:59:37 +01:00
James Hawkins 1f3d6a9744 msi: Reimplement MsiGetProductInfo. 2008-02-12 22:59:29 +01:00
James Hawkins ff0dc44f2d msi: Return ERROR_INVALID_PARAMETER if szProduct is invalid. 2008-02-11 20:53:13 +01:00
James Hawkins ffc251f5dd msi: Return ERROR_MORE_DATA if the size is too small. 2008-02-05 12:19:37 +01:00
James Hawkins dc8f714ade msi: Return the string length even if the string is NULL. 2008-02-05 12:19:37 +01:00
James Hawkins 40841946f5 msi: Leave room for the NULL terminator. 2008-02-05 12:19:37 +01:00
James Hawkins d165435048 msi: Return ERROR_FILE_INVALID if the file has no version information. 2008-02-05 12:19:37 +01:00
James Hawkins 03335de8d0 msi: Return ERROR_INVALID_PARAMETER if a string pointer is non-NULL and the size pointer is NULL. 2008-02-05 12:19:37 +01:00
James Hawkins 856800c84b msi: Translate ERROR_BAD_PATHNAME into ERROR_FILE_NOT_FOUND. 2008-02-05 12:19:37 +01:00
James Hawkins 5d46eeac75 msi: Only convert output strings if the call succeeded. 2008-02-05 12:19:36 +01:00
James Hawkins 44349af11a msi: Reimplement MsiGetProductCode. 2007-12-08 19:53:43 +01:00
James Hawkins 383a8a5b92 msi: Reimplement MsiGetComponentPath. 2007-12-05 12:08:04 +01:00
James Hawkins c77d200f27 msi: Add a stub implementation of MsiEnumComponentCostsW. 2007-12-03 14:03:11 +01:00
James Hawkins e100288934 msi: Verify the szFilePath parameter of MsiGetFileHash. 2007-11-26 12:27:53 +01: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 0713c32869 msi: Implement the remaining contexts for MsiQueryComponentState. 2007-08-08 15:32:00 +02:00
James Hawkins ca55c7a330 msi: Implement the MSIINSTALLCONTEXT_MACHINE context for MsiQueryComponentState. 2007-08-07 12:39:48 +02:00
James Hawkins 5f442207d5 msi: Forward MsiQueryComponentStateA to MsiQueryComponentStateW. 2007-08-07 12:39:36 +02:00
Francois Gouget 4deb14a3b6 msi: Fix the MsiEnumProductsEx*(), MsiQueryComponentState*() and MsiProvideQualifiedComponentEx*() prototypes. 2007-08-06 13:57:53 +02:00
James Hawkins 39a5638268 msi: Read the components state directly from the registry. 2007-07-03 14:05:41 +02:00
James Hawkins 34f6af95b4 msi: Return INSTALLSTATE_BADCONFIG if we can't decode the first component. 2007-07-03 14:05:36 +02:00
James Hawkins 73e0a87477 msi: Return INSTALLSTATE_ADVERTISED if the component list is empty. 2007-07-03 14:05:29 +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 24ede2f9e6 msi: If the UserData product key exists, but the user product key doesn't, the product is absent. 2007-06-27 12:32:44 +02:00
James Hawkins 3bf32f2700 msi: Any value of WindowsInstaller besides 0 means the product is installed. 2007-06-27 12:32:44 +02:00
James Hawkins 7da89f48fd msi: Use the correct registry key when detecting a published product. 2007-06-27 12:32:44 +02:00
James Hawkins 15823e1acf msi: If the user product key exists, the product's state is advertised. 2007-06-27 12:32:43 +02:00
James Hawkins e92f66558a msi: Validate MsiQueryProductCode parameters. 2007-06-27 12:32:43 +02:00
James Hawkins ee89cfca53 msi: Add a stub implementation of MsiQueryComponentStateA. 2007-06-26 12:11:47 +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 d8860d34e4 msi: Implement MsiApplyPatchW. 2007-06-18 12:14:53 +02:00
James Hawkins 974e76fe79 msi: Forward MsiApplyPatchA to MsiApplyPatchW. 2007-06-18 12:14:38 +02:00
Jeff Latimer 8521cb8677 msi: Use the langbuff len rather than the versionbuff len when allocating the langbuff. 2007-06-11 13:49:45 +02:00
Andrew Talbot a0ae69a8d1 msi: Constify some variables. 2007-06-06 14:07:22 +02:00
Misha Koshelev d800a082a8 msi: Return appropriate values for empty MsiProductInfo parameters. 2007-05-17 12:47:20 +02:00
Aric Stewart b46ab0b8cb msi: Do not crash in MsiGetUserInfo if org, user or serial are not present, instead return USERINFOSTATE_ABSENT. 2007-04-12 16:19:24 +02:00
Andrew Talbot 5346ba392d msi: Constify some variables. 2007-02-19 12:04:12 +01: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
Dan Kegel 337e1e202f msi: Callers of alloc_msihandle should handle failure. 2006-08-29 12:21:54 +02:00
Francois Gouget ce9b4baad8 Assorted spelling fixes. 2006-08-07 13:52:55 +02:00
Mike McCormack 525ceb7085 msi: Fix some memory leaks. 2006-07-28 12:32:14 +02:00
Mike McCormack f3dae17cbb msi: Use msi_alloc/free, not HeapAlloc/Free. 2006-07-27 11:56:51 +02:00
Mike McCormack bc673bff01 msi: Make MsiConfigureFeature a bit more robust. 2006-07-24 19:55:50 +02:00
Mike McCormack 0bfb9c3e3d msi: Move COM server implementation to a separate file. 2006-07-24 19:55:41 +02:00
Robert Shearman c0596e0ae9 msi: The szLogFile parameter of MsiEnableLogW is optional, so handle the case of it being NULL. 2006-07-24 13:47:50 +02:00
Mike McCormack e8a7587bdb msi: Implement MsiGetFileHash. 2006-07-24 13:46:33 +02:00
Mike McCormack bb141641d3 msi: Reimplement MsiGetUserInfo using awstrings. 2006-07-24 13:27:15 +02:00
Mike McCormack dc4d5b0f0e msi: MoveMsiEnumPatches to registry.c 2006-07-24 12:57:33 +02:00
Mike McCormack aed2de8ec9 msi: Handle W/A conversions more correctly in MsiProvideQualifiedComponentEx. 2006-07-21 10:56:53 +02:00
Mike McCormack 869495efd3 msi: Use msi_reg_get_val_str() to read a registry value. 2006-07-21 10:56:40 +02:00
Mike McCormack db1baf7367 msi: Add a stub implementation for MsiProvideQualifiedComponentExA. 2006-07-21 10:56:30 +02:00
Mike McCormack 8bce656fd3 msi: Components with INSTALLSTATE_NOTUSED are considered present. 2006-07-21 10:56:17 +02:00
Mike McCormack a36d06c003 msi: A component with an empty path is not used. 2006-07-21 10:55:48 +02:00
Mike McCormack dfb1f4f55b msi: Use TRACE not FIXME for already implemented functions. 2006-07-21 10:55:37 +02:00
Mike McCormack fee5bee811 msi: Implement MsiConfigureFeatureW. 2006-07-19 18:15:35 +02:00
Mike McCormack 4642221875 msi: Fix the size of base 85 GUIDs. 2006-07-19 18:15:26 +02:00
Mike McCormack 1aba0d62c6 msi: Check the right pointers for NULL. 2006-07-19 09:42:36 +02:00
Mike McCormack bf57910537 msi: Set properties, not the command line in MsiReinstallFeatureW. 2006-07-19 09:41:06 +02:00
Robert Shearman aea12b4695 msi: Fix conversion of path to include nul-termination character in MsiProvideQualifiedComponentA. 2006-07-18 11:13:43 +02:00
Mike McCormack 33ec7eb5e0 msi: Tidy up MsiCreateAndVerifyInstallerDirectory a bit. 2006-07-17 14:46:26 +02:00
Mike McCormack f6170beb47 msi: Implement MsiConfigureFeatureA using MsiConfigureFeatureW. 2006-07-17 14:46:26 +02:00
Mike McCormack a5a91d17a4 msi: Add support for INSTALLSTATE_ADVERTISED to MsiQueryFeatureState. 2006-07-17 14:46:25 +02:00
Mike McCormack baa6efa56f msi: MsiGetComponentPath cannot return INSTALLSTATE_ADVERTISED. 2006-07-17 14:46:25 +02:00
Mike McCormack c19f9e9c31 msi: Use awstring to return strings from MsiGetProductInfo. 2006-07-14 13:32:39 +02:00
Mike McCormack cd5bac0b3d msi: Read from the registry, not the database in MsiGetProductInfo. 2006-07-14 13:32:39 +02:00
Mike McCormack abfe248633 msi: Features may be published but absent. 2006-07-06 15:40:23 +02:00
Mike McCormack ee3e058655 msi: Add a test for MsiGetComponentPath and make it pass. 2006-07-06 15:40:12 +02:00
Mike McCormack 4c0e72eceb msi: Use msi_strcpy_to_awstring to return the string in MsiComponentGetPath. 2006-07-06 15:39:56 +02:00
Mike McCormack 17518ca910 msi: Forward MsiUseFeature to MsiUseFeatureEx. 2006-07-06 12:45:16 +02:00
Hans Leidekker 4f62bf79dc msi: Implement MsiLocateComponent{A,W}. 2006-05-30 12:23:51 +02:00
Dmitry Timoshkov 0d13a99e79 msi: Translate the resulting string only if the previous call succeeded. 2006-05-25 20:28:45 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Mike McCormack 3a94011ab6 msi: Clean up memset usage. 2006-04-18 21:13:52 +02:00
Mike McCormack a92fe55cce msi: Fix some possible NULL pointer dereferences (Coverity). 2006-04-17 12:38:36 +02:00
Francois Gouget 38884e0347 Small documentation tweaks to avoid winapi_check warnings. 2006-01-03 12:10:09 +01:00
Christian Gmeiner e02e539c1e msi: Implemented DllCanUnloadNow. 2005-12-05 20:39:33 +01:00
Steven Edwards f5f8cd0846 Partly implement MsiMessageBox[A/W] on top of MessageBoxEx[A/W] 2005-11-11 10:52:53 +00:00
Aric Stewart 5cbd491b7b Use MsiDecomposeDescriptorW in MsiProvideQualifiedComponentExW. 2005-11-10 11:06:04 +00:00
Mike McCormack 454fa4bea0 Make sure we only CoUninitialize after successfully initializing.
Fix the address of the returned IShellLinkDataList interface.
2005-11-09 10:58:24 +00:00
Ivan Leo Puoti 5b22e4d6ef Fix some wrong prototypes. 2005-11-03 11:35:11 +00:00
Mike McCormack 451ef3a9c3 Stub implementation for MsiAdvertiseScriptA/W. 2005-11-02 19:54:31 +00:00
Mike McCormack 15e578dfbc Stub implementation for MsiGetFileHashA/W. 2005-11-02 10:56:54 +00:00
Mike McCormack 94caa05d07 Improve MsiUseFeatureEx and MsiGetFeatureState a little, add some
simple test cases.
2005-10-31 14:07:20 +00:00
Mike McCormack ec5edeebf4 Define MSIDBOPEN_ constants using LPCWSTR when compiling Wine. 2005-10-30 19:21:51 +00:00
Mike McCormack 13fee293ba Implement MsiGetFeatureUsageA and MsiUseFeature(Ex)A using their W
versions.
2005-10-29 11:36:57 +00:00
Mike McCormack 481bccc8b7 Add an implementation for MsiGetShortcutTargetA/W. 2005-10-29 10:28:30 +00:00
Mike McCormack 8caef535e0 Return an error in MsiGetComponentPathW if passed a null component. 2005-10-28 10:41:20 +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 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 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 170278dfe0 Implement MsiGetShortcutTargetA. 2005-09-23 10:48:42 +00:00
Mike McCormack ee034ba4c2 Added memory allocation inline functions (part 2). 2005-09-20 11:59:14 +00:00
Mike McCormack 4a202c2112 Fix the stub for MsiConfigureFeature. 2005-09-16 18:45:04 +00:00
Aric Stewart c774bb026d Implement MsiReinstallFeature. 2005-09-07 13:26:06 +00:00
Aric Stewart 685aa44b2d Be sure to null terminate the string in MsiGetProductInfoA after the
W->A conversion using MsiGetProductInfoW if there is space.
2005-09-06 14:04:25 +00:00
Aric Stewart d3d5ad6b7a Added stub implementations for MsiEnumPatchesA/W. 2005-09-06 11:05:24 +00:00
Francois Gouget 0de0d11357 Change some Dll* functions so they are exported by name like on
Windows.
Update the documentation accordingly.
2005-08-10 13:02:43 +00:00
Vincent Béron 21e3ba8cd1 Correct mismatches between spec files and comments about export
number.
2005-08-10 09:53:47 +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
Steven Edwards cbec713615 Add real stub for MsiConfigureFeatureW. 2005-08-03 10:56:43 +00:00
Alexandre Julliard 7258914ef6 Use the official names for the Unicode string constants. 2005-07-13 12:07:41 +00:00
Aric Stewart 27867e2502 Use the SourceList functions to get the source path in
ConfigureProductExW.
2005-07-12 17:56:17 +00:00
Aric Stewart c6d24d235a Use the strings defined in msi.h. 2005-07-11 18:01:39 +00:00
Robert Shearman 199efb74fe In MsiLocateComponent pcchBuf can be NULL so don't try to dereference
it.
2005-07-08 11:29:55 +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
Aric Stewart 31695b54c9 A "1" is returned not a 1 for AssignmentType. Also as a bit more to
the FIXME message.
2005-06-13 19:04:39 +00:00
Aric Stewart 36bc29769b Add Language to the values we can query with MsiGetProductInfo. 2005-06-08 18:35:43 +00:00
Aric Stewart 90bc168c87 Correct a crash if the length buffer is NULL. 2005-06-07 20:02:07 +00:00
Aric Stewart 4d1ce166ce Locate where a buffer size is not being set and correctly handle the
buffer size conversion from W to A (with help from Robert Shearman).
2005-06-03 11:24:57 +00:00
Dmitry Timoshkov b67da5b946 Make more of the OLE interface vtables const. 2005-06-01 19:57:42 +00:00
Mike McCormack cac6387ca3 Add and correct some function declarations. 2005-05-30 11:12:24 +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
Aric Stewart 8a6d5e5847 Fix a leaking handle in MsiConfigureProductExW.
Implement MsiGetProductCodeW.
Implement MsiGetUserInfoW.
Implement MsiCollectUserInfoA/W.
2005-05-20 18:59:11 +00:00
Stefan Leichter f483ca611e Added minimal implementation of MsiCreateAndVerifyInstallerDirectory. 2005-05-11 12:01:12 +00:00