Hans Leidekker : msi: Implement the DisableRollback standard action.

Alexandre Julliard julliard at winehq.org
Fri May 20 12:44:32 CDT 2011


Module: wine
Branch: master
Commit: 9c9e0981b44791728ee205cdc4e2fd548c600850
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9c9e0981b44791728ee205cdc4e2fd548c600850

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Fri May 20 12:33:16 2011 +0200

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 f41c921..2c38fb7 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 2cc7daf..733b316 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);




More information about the wine-cvs mailing list