msi: Directly pass the disk id to installfiles_cb.
The MEDIAINFO structure is modified by the cabinet_next_cabinet callback if there's a continuous cabinet in the installer.
This commit is contained in:
parent
dcb501decd
commit
5ecbc4f8ca
@ -196,7 +196,7 @@ static BOOL installfiles_cb(MSIPACKAGE *package, LPCWSTR file, DWORD action,
|
|||||||
LPWSTR *path, DWORD *attrs, PVOID user)
|
LPWSTR *path, DWORD *attrs, PVOID user)
|
||||||
{
|
{
|
||||||
static MSIFILE *f = NULL;
|
static MSIFILE *f = NULL;
|
||||||
MSIMEDIAINFO *mi = user;
|
UINT_PTR disk_id = (UINT_PTR)user;
|
||||||
|
|
||||||
if (action == MSICABEXTRACT_BEGINEXTRACT)
|
if (action == MSICABEXTRACT_BEGINEXTRACT)
|
||||||
{
|
{
|
||||||
@ -207,7 +207,7 @@ static BOOL installfiles_cb(MSIPACKAGE *package, LPCWSTR file, DWORD action,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (f->disk_id != mi->disk_id || (f->state != msifs_missing && f->state != msifs_overwrite))
|
if (f->disk_id != disk_id || (f->state != msifs_missing && f->state != msifs_overwrite))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
msi_file_update_ui(package, f, szInstallFiles);
|
msi_file_update_ui(package, f, szInstallFiles);
|
||||||
@ -265,7 +265,7 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package)
|
|||||||
data.mi = mi;
|
data.mi = mi;
|
||||||
data.package = package;
|
data.package = package;
|
||||||
data.cb = installfiles_cb;
|
data.cb = installfiles_cb;
|
||||||
data.user = mi;
|
data.user = (PVOID)(UINT_PTR)mi->disk_id;
|
||||||
|
|
||||||
if (file->IsCompressed &&
|
if (file->IsCompressed &&
|
||||||
!msi_cabextract(package, mi, &data))
|
!msi_cabextract(package, mi, &data))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user