Author: akhaldi Date: Sat Jun 25 11:27:22 2016 New Revision: 71667
URL: http://svn.reactos.org/svn/reactos?rev=71667&view=rev Log: [MSI] Sync with Wine Staging 1.9.12. CORE-11266
Modified: trunk/reactos/dll/win32/msi/action.c trunk/reactos/dll/win32/msi/custom.c trunk/reactos/dll/win32/msi/dialog.c trunk/reactos/dll/win32/msi/msvchelper.h trunk/reactos/dll/win32/msi/where.c trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/msi/action.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/action.c?rev=... ============================================================================== --- trunk/reactos/dll/win32/msi/action.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msi/action.c [iso-8859-1] Sat Jun 25 11:27:22 2016 @@ -2987,11 +2987,7 @@ { *p = 0; if (!p[1]) continue; /* trailing backslash */ -#ifdef __REACTOS__ /* CORE-10587 */ hkey = open_key( comp, root, subkey, FALSE, access | READ_CONTROL ); -#else - hkey = open_key( comp, root, subkey, FALSE, access ); -#endif if (!hkey) break; res = RegDeleteKeyExW( hkey, p + 1, access, 0 ); RegCloseKey( hkey ); @@ -5806,6 +5802,7 @@ LPWSTR name = NULL, disp = NULL, load_order = NULL, serv_name = NULL; LPWSTR depends = NULL, pass = NULL, args = NULL, image_path = NULL; DWORD serv_type, start_type, err_control; + BOOL is_vital; SERVICE_DESCRIPTIONW sd = {NULL}; UINT ret = ERROR_SUCCESS;
@@ -5844,6 +5841,13 @@ deformat_string(package, MSI_RecordGetString(rec, 11), &args); deformat_string(package, MSI_RecordGetString(rec, 13), &sd.lpDescription);
+ /* Should the complete install fail if CreateService fails? */ + is_vital = (err_control & msidbServiceInstallErrorControlVital); + + /* Remove the msidbServiceInstallErrorControlVital-flag from err_control. + CreateService (under Windows) would fail if not. */ + err_control &= ~msidbServiceInstallErrorControlVital; + /* fetch the service path */ row = MSI_QueryGetRecord(package->db, query, comp); if (!row) @@ -5885,7 +5889,12 @@ if (!service) { if (GetLastError() != ERROR_SERVICE_EXISTS) - ERR("Failed to create service %s: %d\n", debugstr_w(name), GetLastError()); + { + WARN("Failed to create service %s: %d\n", debugstr_w(name), GetLastError()); + if (is_vital) + ret = ERROR_INSTALL_FAILURE; + + } } else if (sd.lpDescription) {
Modified: trunk/reactos/dll/win32/msi/custom.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/custom.c?rev=... ============================================================================== --- trunk/reactos/dll/win32/msi/custom.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msi/custom.c [iso-8859-1] Sat Jun 25 11:27:22 2016 @@ -527,6 +527,7 @@ __ASM_CFI(".cfi_rel_offset %ebp,0\n\t") "movl %esp,%ebp\n\t" __ASM_CFI(".cfi_def_cfa_register %ebp\n\t") + "subl $4,%esp\n\t" "pushl 12(%ebp)\n\t" "movl 8(%ebp),%eax\n\t" "call *%eax\n\t"
Modified: trunk/reactos/dll/win32/msi/dialog.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/dialog.c?rev=... ============================================================================== --- trunk/reactos/dll/win32/msi/dialog.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msi/dialog.c [iso-8859-1] Sat Jun 25 11:27:22 2016 @@ -3590,7 +3590,7 @@ dialog->size.cx = sz.cx; dialog->size.cy = sz.cy;
- TRACE("%u %u %u %u\n", pos->left, pos->top, pos->right, pos->bottom); + TRACE("%s\n", wine_dbgstr_rect(pos));
style = GetWindowLongPtrW( dialog->hwnd, GWL_STYLE ); AdjustWindowRect( pos, style, FALSE );
Modified: trunk/reactos/dll/win32/msi/msvchelper.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/msvchelper.h?... ============================================================================== --- trunk/reactos/dll/win32/msi/msvchelper.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msi/msvchelper.h [iso-8859-1] Sat Jun 25 11:27:22 2016 @@ -14,6 +14,7 @@ { push ebp mov ebp, esp + sub esp, 4 push dword ptr [ebp + 12] mov eax, dword ptr [ebp + 8] call eax
Modified: trunk/reactos/dll/win32/msi/where.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/where.c?rev=7... ============================================================================== --- trunk/reactos/dll/win32/msi/where.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msi/where.c [iso-8859-1] Sat Jun 25 11:27:22 2016 @@ -578,7 +578,7 @@
default: ERR("Invalid expression type\n"); - break; + return ERROR_FUNCTION_FAILED; }
return ERROR_SUCCESS;
Modified: trunk/reactos/media/doc/README.WINE URL: http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=7... ============================================================================== --- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original) +++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sat Jun 25 11:27:22 2016 @@ -114,7 +114,7 @@ reactos/dll/win32/msgsm32.acm # Synced to WineStaging-1.9.4 reactos/dll/win32/mshtml # Synced to WineStaging-1.7.55 reactos/dll/win32/mshtml.tlb # Synced to WineStaging-1.7.55 -reactos/dll/win32/msi # Synced to WineStaging-1.9.4 +reactos/dll/win32/msi # Synced to WineStaging-1.9.12 reactos/dll/win32/msimg32 # Synced to WineStaging-1.9.4 reactos/dll/win32/msimtf # Synced to WineStaging-1.9.4 reactos/dll/win32/msisip # Synced to WineStaging-1.9.4