msi: Add support for the ActionInfo progress message subtype.

This commit is contained in:
Hans Leidekker 2012-05-15 09:40:22 +02:00 committed by Alexandre Julliard
parent 6c7d0993f0
commit 4b32c09376
4 changed files with 14 additions and 2 deletions

View file

@ -7340,6 +7340,7 @@ UINT ACTION_PerformUIAction(MSIPACKAGE *package, const WCHAR *action, UINT scrip
TRACE("Performing action (%s)\n", debugstr_w(action));
package->action_progress_increment = 0;
handled = ACTION_HandleStandardAction(package, action, &rc);
if (!handled)

View file

@ -664,7 +664,9 @@ void msi_dialog_handle_event( msi_dialog* dialog, LPCWSTR control,
SendMessageW( ctrl->hwnd, PBM_SETPOS, 0, 0 );
}
break;
case 1: /* FIXME: not sure what this is supposed to do */
case 1: /* action data increment */
if (val2) dialog->package->action_progress_increment = val1;
else dialog->package->action_progress_increment = 0;
break;
case 2: /* move */
if (ctrl->progress_backwards)

View file

@ -369,6 +369,7 @@ typedef struct tagMSIPACKAGE
struct list cabinet_streams;
LPWSTR ActionFormat;
LPWSTR LastAction;
UINT action_progress_increment;
HANDLE log_file;
IAssemblyCache *cache_net[CLR_VERSION_MAX];
IAssemblyCache *cache_sxs;

View file

@ -1905,8 +1905,16 @@ INT MSI_ProcessMessage( MSIPACKAGE *package, INSTALLMESSAGE eMessageType, MSIREC
msi_free(deformated);
ControlEvent_FireSubscribedEvent(package, szActionData, uirow);
msiobj_release(&uirow->hdr);
if (package->action_progress_increment)
{
uirow = MSI_CreateRecord(2);
MSI_RecordSetInteger(uirow, 1, 2);
MSI_RecordSetInteger(uirow, 2, package->action_progress_increment);
ControlEvent_FireSubscribedEvent(package, szSetProgress, uirow);
msiobj_release(&uirow->hdr);
}
break;
case INSTALLMESSAGE_ACTIONSTART: