Module: wine Branch: master Commit: 65c68efc8dc2d211454857aba38271c0f956c209 URL: http://source.winehq.org/git/wine.git/?a=commit;h=65c68efc8dc2d211454857aba3...
Author: Hans Leidekker hans@codeweavers.com Date: Thu Feb 18 12:47:21 2010 +0100
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 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);