msi: Set the component's initial state based on its attributes.

This commit is contained in:
James Hawkins 2006-07-21 10:09:52 -07:00 committed by Alexandre Julliard
parent 3c03ae2f84
commit cae3215a6f
1 changed files with 19 additions and 2 deletions

View File

@ -1115,8 +1115,25 @@ static MSICOMPONENT* load_component( MSIRECORD * row )
comp->KeyPath = msi_dup_record_field( row, 6 );
comp->Installed = INSTALLSTATE_ABSENT;
comp->Action = INSTALLSTATE_UNKNOWN;
comp->ActionRequest = INSTALLSTATE_UNKNOWN;
switch (comp->Attributes)
{
case msidbComponentAttributesLocalOnly:
comp->Action = INSTALLSTATE_LOCAL;
comp->ActionRequest = INSTALLSTATE_LOCAL;
break;
case msidbComponentAttributesSourceOnly:
comp->Action = INSTALLSTATE_SOURCE;
comp->ActionRequest = INSTALLSTATE_SOURCE;
break;
case msidbComponentAttributesOptional:
comp->Action = INSTALLSTATE_LOCAL;
comp->ActionRequest = INSTALLSTATE_LOCAL;
break;
default:
comp->Action = INSTALLSTATE_UNKNOWN;
comp->ActionRequest = INSTALLSTATE_UNKNOWN;
}
comp->Enabled = TRUE;