Commit 94d6818c authored by Aric Stewart's avatar Aric Stewart Committed by Alexandre Julliard

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.
parent 7721b267
......@@ -3688,11 +3688,52 @@ static UINT ACTION_ForceReboot(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
* however for Adminastrative and uninstalls this step will be needed
*/
if (!package->PackagePath)
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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment