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

oldstable
James Hawkins 2006-07-19 11:17:16 -07:00 committed by Alexandre Julliard
parent 7c7f0bb2c1
commit 7bcac31dcf
3 changed files with 8 additions and 1 deletions

View File

@ -1590,7 +1590,7 @@ static BOOL process_state_property (MSIPACKAGE* package, LPCWSTR property,
return TRUE;
}
static UINT MSI_SetFeatureStates(MSIPACKAGE *package)
UINT MSI_SetFeatureStates(MSIPACKAGE *package)
{
int install_level;
static const WCHAR szlevel[] =

View File

@ -785,6 +785,12 @@ UINT WINAPI MsiSetInstallLevel(MSIHANDLE hInstall, int iInstallLevel)
sprintfW( level, fmt, iInstallLevel );
r = MSI_SetPropertyW( package, szInstallLevel, level );
if ( r == ERROR_SUCCESS )
{
r = MSI_SetFeatureStates( package );
}
msiobj_release( &package->hdr );
return r;
}

View File

@ -339,6 +339,7 @@ extern UINT MSI_InstallPackage( MSIPACKAGE *, LPCWSTR, LPCWSTR );
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 *);