[2/2] msi: Implement MSIRUNMODE_MAINTENANCE and MSIRUNMODE_REBOOTATEND for MsiGetMode.

Hans Leidekker hans at codeweavers.com
Thu Feb 18 05:47:21 CST 2010


---
 dlls/msi/install.c          |   12 +++++++++++-
 dlls/msi/tests/automation.c |    4 ++--
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/dlls/msi/install.c b/dlls/msi/install.c
index 7a71867..6e19863 100644
--- a/dlls/msi/install.c
+++ b/dlls/msi/install.c
@@ -661,6 +661,8 @@ BOOL WINAPI MsiGetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode)
     MSIPACKAGE *package;
     BOOL r = FALSE;
 
+    TRACE("%d %d\n", hInstall, iRunMode);
+
     package = msihandle2msiinfo(hInstall, MSIHANDLETYPE_PACKAGE);
     if (!package)
     {
@@ -706,8 +708,16 @@ BOOL WINAPI MsiGetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode)
         r = package->commit_action_running;
         break;
 
+    case MSIRUNMODE_MAINTENANCE:
+        r = msi_get_property_int( package, szInstalled, 0 ) != 0;
+        break;
+
+    case MSIRUNMODE_REBOOTATEND:
+        r = package->need_reboot;
+        break;
+
     default:
-        FIXME("%d %d\n", hInstall, iRunMode);
+        FIXME("unimplemented run mode\n");
         r = TRUE;
     }
 
diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c
index cab6cb7..edc6cbe 100644
--- a/dlls/msi/tests/automation.c
+++ b/dlls/msi/tests/automation.c
@@ -1863,11 +1863,11 @@ static void test_Session(IDispatch *pSession)
     /* Session::Mode, get */
     hr = Session_ModeGet(pSession, MSIRUNMODE_REBOOTATEND, &bool);
     ok(hr == S_OK, "Session_ModeGet failed, hresult 0x%08x\n", hr);
-    todo_wine ok(!bool, "Reboot at end session mode is %d\n", bool);
+    ok(!bool, "Reboot at end session mode is %d\n", bool);
 
     hr = Session_ModeGet(pSession, MSIRUNMODE_MAINTENANCE, &bool);
     ok(hr == S_OK, "Session_ModeGet failed, hresult 0x%08x\n", hr);
-    todo_wine ok(!bool, "Maintenance mode is %d\n", bool);
+    ok(!bool, "Maintenance mode is %d\n", bool);
 
     /* Session::Mode, put */
     hr = Session_ModePut(pSession, MSIRUNMODE_REBOOTATEND, TRUE);
-- 
1.6.3.3




More information about the wine-patches mailing list