James Hawkins : msi: Update feature states after changing install levels, as they may have changed.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jul 20 06:20:44 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 7bcac31dcf4b37a0780efaf06540351e2c3543b3
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=7bcac31dcf4b37a0780efaf06540351e2c3543b3

Author: James Hawkins <truiken at gmail.com>
Date:   Wed Jul 19 11:17:16 2006 -0700

msi: Update feature states after changing install levels, as they may have changed.

---

 dlls/msi/action.c  |    2 +-
 dlls/msi/install.c |    6 ++++++
 dlls/msi/msipriv.h |    1 +
 3 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index d6ca5d7..d7be3b5 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -1590,7 +1590,7 @@ static BOOL process_state_property (MSIP
     return TRUE;
 }
 
-static UINT MSI_SetFeatureStates(MSIPACKAGE *package)
+UINT MSI_SetFeatureStates(MSIPACKAGE *package)
 {
     int install_level;
     static const WCHAR szlevel[] =
diff --git a/dlls/msi/install.c b/dlls/msi/install.c
index cb43403..38888ef 100644
--- a/dlls/msi/install.c
+++ b/dlls/msi/install.c
@@ -785,6 +785,12 @@ UINT WINAPI MsiSetInstallLevel(MSIHANDLE
 
     sprintfW( level, fmt, iInstallLevel );
     r = MSI_SetPropertyW( package, szInstallLevel, level );
+    if ( r == ERROR_SUCCESS )
+    {
+        r = MSI_SetFeatureStates( package );
+    }
+
     msiobj_release( &package->hdr );
+
     return r;
 }
diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h
index 999b4ca..a56b9fe 100644
--- a/dlls/msi/msipriv.h
+++ b/dlls/msi/msipriv.h
@@ -339,6 +339,7 @@ extern UINT MSI_InstallPackage( MSIPACKA
 extern void ACTION_free_package_structures( MSIPACKAGE* );
 extern UINT ACTION_DialogBox( MSIPACKAGE*, LPCWSTR);
 extern UINT MSI_Sequence( MSIPACKAGE *package, LPCWSTR szTable, INT iSequenceMode );
+extern UINT MSI_SetFeatureStates( MSIPACKAGE *package );
 
 /* record internals */
 extern UINT MSI_RecordSetIStream( MSIRECORD *, unsigned int, IStream *);




More information about the wine-cvs mailing list