[2/3] msi: Add support for the ProgressAddition progress message subtype.

Hans Leidekker hans at codeweavers.com
Mon May 14 03:32:56 CDT 2012


Fixes http://bugs.winehq.org/show_bug.cgi?id=30664
---
 dlls/msi/dialog.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c
index a90d379..f4881fd 100644
--- a/dlls/msi/dialog.c
+++ b/dlls/msi/dialog.c
@@ -644,11 +644,11 @@ void msi_dialog_handle_event( msi_dialog* dialog, LPCWSTR control,
 
         TRACE("progress: func %u val1 %u val2 %u\n", func, val1, val2);
 
+        units = val1 / 512;
         switch (func)
         {
         case 0: /* init */
             SendMessageW( ctrl->hwnd, PBM_SETRANGE, 0, MAKELPARAM(0,100) );
-            units = val1 / 512;
             if (val2)
             {
                 ctrl->progress_max = units ? units : 100;
@@ -667,7 +667,6 @@ void msi_dialog_handle_event( msi_dialog* dialog, LPCWSTR control,
         case 1: /* FIXME: not sure what this is supposed to do */
             break;
         case 2: /* move */
-            units = val1 / 512;
             if (ctrl->progress_backwards)
             {
                 if (units >= ctrl->progress_current) ctrl->progress_current -= units;
@@ -680,6 +679,9 @@ void msi_dialog_handle_event( msi_dialog* dialog, LPCWSTR control,
             }
             SendMessageW( ctrl->hwnd, PBM_SETPOS, MulDiv(100, ctrl->progress_current, ctrl->progress_max), 0 );
             break;
+        case 3: /* add */
+            ctrl->progress_max += units;
+            break;
         default:
             FIXME("Unknown progress message %u\n", func);
             break;
-- 
1.7.10







More information about the wine-patches mailing list