[3/3] msi: Add support for the ActionInfo progress message subtype.
Hans Leidekker
hans at codeweavers.com
Tue May 15 02:40:22 CDT 2012
---
dlls/msi/action.c | 1 +
dlls/msi/dialog.c | 4 +++-
dlls/msi/msipriv.h | 1 +
dlls/msi/package.c | 10 +++++++++-
4 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index c1d3b49..efdc79c 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -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)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c
index f4881fd..66d8786 100644
--- a/dlls/msi/dialog.c
+++ b/dlls/msi/dialog.c
@@ -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)
diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h
index 80f5414..bc9e596 100644
--- a/dlls/msi/msipriv.h
+++ b/dlls/msi/msipriv.h
@@ -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;
diff --git a/dlls/msi/package.c b/dlls/msi/package.c
index 2077396..b1668d3 100644
--- a/dlls/msi/package.c
+++ b/dlls/msi/package.c
@@ -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:
--
1.7.10
More information about the wine-patches
mailing list