msi: Open the install properties key based on the install context.

This commit is contained in:
James Hawkins 2008-04-05 06:02:04 -05:00 committed by Alexandre Julliard
parent e21a26e47b
commit bcba82dc0c
1 changed files with 21 additions and 8 deletions

View File

@ -3350,6 +3350,10 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package)
rc = MSIREG_OpenLocalClassesProductKey(package->ProductCode, &hukey, TRUE);
if (rc != ERROR_SUCCESS)
goto end;
rc = MSIREG_OpenLocalSystemInstallProps(package->ProductCode, &props, TRUE);
if (rc != ERROR_SUCCESS)
goto end;
}
else
{
@ -3360,6 +3364,10 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package)
rc = MSIREG_OpenUserProductsKey(package->ProductCode,&hukey,TRUE);
if (rc != ERROR_SUCCESS)
goto end;
rc = MSIREG_OpenCurrentUserInstallProps(package->ProductCode, &props, TRUE);
if (rc != ERROR_SUCCESS)
goto end;
}
rc = RegCreateKeyW(hukey, szSourceList, &source);
@ -3372,10 +3380,6 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package)
if (rc != ERROR_SUCCESS)
goto end;
rc = MSIREG_OpenCurrentUserInstallProps(package->ProductCode, &props, TRUE);
if (rc != ERROR_SUCCESS)
goto end;
buffer = msi_dup_property( package, INSTALLPROPERTY_PRODUCTNAMEW );
msi_reg_set_val_str( hukey, INSTALLPROPERTY_PRODUCTNAMEW, buffer );
msi_free(buffer);
@ -3995,9 +3999,18 @@ static UINT ACTION_RegisterProduct(MSIPACKAGE *package)
if (rc != ERROR_SUCCESS)
return rc;
rc = MSIREG_OpenCurrentUserInstallProps(package->ProductCode, &props, TRUE);
if (rc != ERROR_SUCCESS)
return rc;
if (package->Context == MSIINSTALLCONTEXT_MACHINE)
{
rc = MSIREG_OpenLocalSystemInstallProps(package->ProductCode, &props, TRUE);
if (rc != ERROR_SUCCESS)
return rc;
}
else
{
rc = MSIREG_OpenCurrentUserInstallProps(package->ProductCode, &props, TRUE);
if (rc != ERROR_SUCCESS)
return rc;
}
/* dump all the info i can grab */
/* FIXME: Flesh out more information */
@ -4069,7 +4082,7 @@ static UINT ACTION_RegisterProduct(MSIPACKAGE *package)
msi_free(upgrade_code);
}
RegCloseKey(hkey);
rc = MSIREG_OpenUserDataProductKey(package->ProductCode, &hudkey, TRUE);