msi: Update feature states after changing install levels, as they may have changed.
This commit is contained in:
parent
7c7f0bb2c1
commit
7bcac31dcf
|
@ -1590,7 +1590,7 @@ static BOOL process_state_property (MSIPACKAGE* package, LPCWSTR property,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static UINT MSI_SetFeatureStates(MSIPACKAGE *package)
|
UINT MSI_SetFeatureStates(MSIPACKAGE *package)
|
||||||
{
|
{
|
||||||
int install_level;
|
int install_level;
|
||||||
static const WCHAR szlevel[] =
|
static const WCHAR szlevel[] =
|
||||||
|
|
|
@ -785,6 +785,12 @@ UINT WINAPI MsiSetInstallLevel(MSIHANDLE hInstall, int iInstallLevel)
|
||||||
|
|
||||||
sprintfW( level, fmt, iInstallLevel );
|
sprintfW( level, fmt, iInstallLevel );
|
||||||
r = MSI_SetPropertyW( package, szInstallLevel, level );
|
r = MSI_SetPropertyW( package, szInstallLevel, level );
|
||||||
|
if ( r == ERROR_SUCCESS )
|
||||||
|
{
|
||||||
|
r = MSI_SetFeatureStates( package );
|
||||||
|
}
|
||||||
|
|
||||||
msiobj_release( &package->hdr );
|
msiobj_release( &package->hdr );
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
|
@ -339,6 +339,7 @@ extern UINT MSI_InstallPackage( MSIPACKAGE *, LPCWSTR, LPCWSTR );
|
||||||
extern void ACTION_free_package_structures( MSIPACKAGE* );
|
extern void ACTION_free_package_structures( MSIPACKAGE* );
|
||||||
extern UINT ACTION_DialogBox( MSIPACKAGE*, LPCWSTR);
|
extern UINT ACTION_DialogBox( MSIPACKAGE*, LPCWSTR);
|
||||||
extern UINT MSI_Sequence( MSIPACKAGE *package, LPCWSTR szTable, INT iSequenceMode );
|
extern UINT MSI_Sequence( MSIPACKAGE *package, LPCWSTR szTable, INT iSequenceMode );
|
||||||
|
extern UINT MSI_SetFeatureStates( MSIPACKAGE *package );
|
||||||
|
|
||||||
/* record internals */
|
/* record internals */
|
||||||
extern UINT MSI_RecordSetIStream( MSIRECORD *, unsigned int, IStream *);
|
extern UINT MSI_RecordSetIStream( MSIRECORD *, unsigned int, IStream *);
|
||||||
|
|
Loading…
Reference in New Issue