Author: akhaldi Date: Thu Mar 3 14:28:37 2016 New Revision: 70891
URL: http://svn.reactos.org/svn/reactos?rev=70891&view=rev Log: [MSI] Sync with Wine Staging 1.9.4. CORE-10912
Modified: trunk/reactos/dll/win32/msi/action.c trunk/reactos/dll/win32/msi/database.c trunk/reactos/dll/win32/msi/dialog.c trunk/reactos/dll/win32/msi/registry.c trunk/reactos/dll/win32/msi/sql.y 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] Thu Mar 3 14:28:37 2016 @@ -2987,7 +2987,11 @@ { *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 ); @@ -4119,7 +4123,6 @@ if (rc != ERROR_SUCCESS) { ERR("Failed to get stream\n"); - CloseHandle(the_file); DeleteFileW(FilePath); break; }
Modified: trunk/reactos/dll/win32/msi/database.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/database.c?re... ============================================================================== --- trunk/reactos/dll/win32/msi/database.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msi/database.c [iso-8859-1] Thu Mar 3 14:28:37 2016 @@ -972,7 +972,7 @@ return r;
/* if the destination folder does not exist then create it (folder name = table name) */ - snprintfW( stream_filename, sizeof(stream_filename), fmt_folder, folder, table ); + snprintfW( stream_filename, sizeof(stream_filename)/sizeof(WCHAR), fmt_folder, folder, table ); if (GetFileAttributesW( stream_filename ) == INVALID_FILE_ATTRIBUTES) { if (!CreateDirectoryW( stream_filename, NULL )) @@ -980,7 +980,7 @@ }
/* actually create the file */ - snprintfW( stream_filename, sizeof(stream_filename), fmt_file, folder, table, stream_name ); + snprintfW( stream_filename, sizeof(stream_filename)/sizeof(WCHAR), fmt_file, folder, table, stream_name ); file = CreateFileW( stream_filename, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL ); if (file == INVALID_HANDLE_VALUE)
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] Thu Mar 3 14:28:37 2016 @@ -533,6 +533,17 @@ LIST_FOR_EACH_ENTRY( control, &dialog->controls, msi_control, entry ) { if ( control->property && !strcmpW( control->property, property ) && control->update ) + control->update( dialog, control ); + } +} + +static void msi_dialog_update_all_controls( msi_dialog *dialog ) +{ + msi_control *control; + + LIST_FOR_EACH_ENTRY( control, &dialog->controls, msi_control, entry ) + { + if ( control->property && control->update ) control->update( dialog, control ); } } @@ -674,11 +685,13 @@ { struct subscriber *sub;
- TRACE("event %s control %s attribute %s\n", debugstr_w(event), debugstr_w(control), debugstr_w(attribute)); + TRACE("dialog %s event %s control %s attribute %s\n", debugstr_w(dialog->name), debugstr_w(event), + debugstr_w(control), debugstr_w(attribute));
LIST_FOR_EACH_ENTRY( sub, &dialog->package->subscriptions, struct subscriber, entry ) { - if (!strcmpiW( sub->event, event ) && + if (sub->dialog == dialog && + !strcmpiW( sub->event, event ) && !strcmpiW( sub->control, control ) && !strcmpiW( sub->attribute, attribute )) { @@ -2210,6 +2223,7 @@ control->attributes = MSI_RecordGetInteger( rec, 8 ); prop = MSI_RecordGetString( rec, 9 ); control->property = msi_dialog_dup_property( dialog, prop, FALSE ); + control->update = msi_dialog_update_pathedit;
info->dialog = dialog; info->control = control; @@ -4369,7 +4383,11 @@ { /* don't destroy a modeless dialogs that might be our parent */ event_do_dialog( dialog->package, argument, dialog, FALSE ); - if (dialog->package->CurrentInstallState != ERROR_SUCCESS) msi_dialog_end_dialog( dialog ); + if (dialog->package->CurrentInstallState != ERROR_SUCCESS) + msi_dialog_end_dialog( dialog ); + else + msi_dialog_update_all_controls(dialog); + return ERROR_SUCCESS; }
Modified: trunk/reactos/dll/win32/msi/registry.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/registry.c?re... ============================================================================== --- trunk/reactos/dll/win32/msi/registry.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msi/registry.c [iso-8859-1] Thu Mar 3 14:28:37 2016 @@ -1305,7 +1305,7 @@ REGSAM access = KEY_ENUMERATE_SUB_KEYS | KEY_WOW64_64KEY; HKEY key_users, key_components;
- if (ctx == MSIINSTALLCONTEXT_USERMANAGED) /* FIXME: were to find these? */ + if (ctx == MSIINSTALLCONTEXT_USERMANAGED) /* FIXME: where to find these? */ return ERROR_NO_MORE_ITEMS;
if (RegOpenKeyExW( HKEY_LOCAL_MACHINE, userdataW, 0, access, &key_users ))
Modified: trunk/reactos/dll/win32/msi/sql.y URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/sql.y?rev=708... ============================================================================== --- trunk/reactos/dll/win32/msi/sql.y [iso-8859-1] (original) +++ trunk/reactos/dll/win32/msi/sql.y [iso-8859-1] Thu Mar 3 14:28:37 2016 @@ -355,7 +355,7 @@ data_type: TK_CHAR { - $$ = MSITYPE_STRING | 1; + $$ = MSITYPE_STRING | 0x400; } | TK_CHAR TK_LP data_count TK_RP {
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] Thu Mar 3 14:28:37 2016 @@ -114,7 +114,7 @@ reactos/dll/win32/msgsm32.acm # Synced to WineStaging-1.7.55 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.7.55 +reactos/dll/win32/msi # Synced to WineStaging-1.9.4 reactos/dll/win32/msimg32 # Synced to WineStaging-1.7.55 reactos/dll/win32/msimtf # Synced to WineStaging-1.7.55 reactos/dll/win32/msisip # Synced to WineStaging-1.7.55