Add some body to ResolveSource because it is possible to need it when
an install is begun but the media is not in the drive, such as in install-on-demand cases.
This commit is contained in:
parent
7721b267f5
commit
94d6818c51
|
@ -3688,11 +3688,52 @@ static UINT ACTION_ForceReboot(MSIPACKAGE *package)
|
||||||
|
|
||||||
UINT ACTION_ResolveSource(MSIPACKAGE* package)
|
UINT ACTION_ResolveSource(MSIPACKAGE* package)
|
||||||
{
|
{
|
||||||
|
DWORD attrib;
|
||||||
|
UINT rc;
|
||||||
/*
|
/*
|
||||||
* we are currently doing what should be done here in the top level Install
|
* we are currently doing what should be done here in the top level Install
|
||||||
* however for Adminastrative and uninstalls this step will be needed
|
* however for Adminastrative and uninstalls this step will be needed
|
||||||
*/
|
*/
|
||||||
|
if (!package->PackagePath)
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
|
|
||||||
|
attrib = GetFileAttributesW(package->PackagePath);
|
||||||
|
if (attrib == INVALID_FILE_ATTRIBUTES)
|
||||||
|
{
|
||||||
|
LPWSTR prompt;
|
||||||
|
LPWSTR msg;
|
||||||
|
DWORD size = 0;
|
||||||
|
|
||||||
|
rc = MsiSourceListGetInfoW(package->ProductCode, NULL,
|
||||||
|
MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT,
|
||||||
|
INSTALLPROPERTY_DISKPROMPTW,NULL,&size);
|
||||||
|
if (rc == ERROR_MORE_DATA)
|
||||||
|
{
|
||||||
|
prompt = HeapAlloc(GetProcessHeap(),0,size);
|
||||||
|
MsiSourceListGetInfoW(package->ProductCode, NULL,
|
||||||
|
MSIINSTALLCONTEXT_USERMANAGED, MSICODE_PRODUCT,
|
||||||
|
INSTALLPROPERTY_DISKPROMPTW,prompt,&size);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
prompt = strdupW(package->PackagePath);
|
||||||
|
|
||||||
|
msg = generate_error_string(package,1302,1,prompt);
|
||||||
|
while(attrib == INVALID_FILE_ATTRIBUTES)
|
||||||
|
{
|
||||||
|
rc = MessageBoxW(NULL,msg,NULL,MB_OKCANCEL);
|
||||||
|
if (rc == IDCANCEL)
|
||||||
|
{
|
||||||
|
rc = ERROR_INSTALL_USEREXIT;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
attrib = GetFileAttributesW(package->PackagePath);
|
||||||
|
}
|
||||||
|
rc = ERROR_SUCCESS;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return ERROR_SUCCESS;
|
||||||
|
|
||||||
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static UINT ACTION_RegisterUser(MSIPACKAGE *package)
|
static UINT ACTION_RegisterUser(MSIPACKAGE *package)
|
||||||
|
|
Loading…
Reference in New Issue