From 9c9e0981b44791728ee205cdc4e2fd548c600850 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Fri, 20 May 2011 12:33:16 +0200 Subject: [PATCH] msi: Implement the DisableRollback standard action. --- dlls/msi/action.c | 12 ++++++++++-- dlls/msi/msipriv.h | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dlls/msi/action.c b/dlls/msi/action.c index f41c92121a7..2c38fb7b991 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -7719,7 +7719,9 @@ static UINT ACTION_AllocateRegistrySpace( MSIPACKAGE *package ) static UINT ACTION_DisableRollback( MSIPACKAGE *package ) { - FIXME("%p\n", package); + TRACE("%p\n", package); + + msi_set_property( package->db, szRollbackDisabled, szOne ); return ERROR_SUCCESS; } @@ -8146,7 +8148,7 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath, { UINT rc; BOOL ui_exists; - + static const WCHAR szDisableRollback[] = {'D','I','S','A','B','L','E','R','O','L','L','B','A','C','K',0}; static const WCHAR szAction[] = {'A','C','T','I','O','N',0}; static const WCHAR szInstall[] = {'I','N','S','T','A','L','L',0}; @@ -8210,6 +8212,12 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath, msi_adjust_privilege_properties( package ); msi_set_context( package ); + if (msi_get_property_int( package->db, szDisableRollback, 0 )) + { + TRACE("disabling rollback\n"); + msi_set_property( package->db, szRollbackDisabled, szOne ); + } + if (needs_ui_sequence( package)) { package->script->InWhatSequence |= SEQUENCE_UI; diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h index 2cc7dafa59a..733b3162bee 100644 --- a/dlls/msi/msipriv.h +++ b/dlls/msi/msipriv.h @@ -1143,6 +1143,7 @@ static const WCHAR szStringPool[] = {'_','S','t','r','i','n','g','P','o','o','l' static const WCHAR szInstallLevel[] = {'I','N','S','T','A','L','L','L','E','V','E','L',0}; static const WCHAR szCostInitialize[] = {'C','o','s','t','I','n','i','t','i','a','l','i','z','e',0}; static const WCHAR szAppDataFolder[] = {'A','p','p','D','a','t','a','F','o','l','d','e','r',0}; +static const WCHAR szRollbackDisabled[] = {'R','o','l','l','b','a','c','k','D','i','s','a','b','l','e','d',0}; /* memory allocation macro functions */ static void *msi_alloc( size_t len ) __WINE_ALLOC_SIZE(1); -- 2.11.4.GIT