From 65c68efc8dc2d211454857aba38271c0f956c209 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Thu, 18 Feb 2010 12:47:21 +0100 Subject: [PATCH] msi: Implement MSIRUNMODE_MAINTENANCE and MSIRUNMODE_REBOOTATEND for MsiGetMode. --- 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 7a71867262c..6e19863e13f 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 cab6cb7170d..edc6cbe8a60 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);