http://bugs.winehq.org/show_bug.cgi?id=11537
--- Comment #22 from Stephen E. Baker cycoone@hotmail.com 2008-02-15 06:52:29 ---
James, here's the commit:
bb747e4fbe6619fa0e862102cc26456118355c67 - msi: Simplify ready_media.
http://source.winehq.org/git/wine.git/?a=commit;h=bb747e4fbe6619fa0e862102cc...
I've looked over the diff in detail and it appears that there is one condition where the results would be different:
if (file->IsCompressed && GetFileAttributesW(mi->source) == INVALID_FILE_ATTRIBUTES) && (!(package->BaseURL && UrlIsW(package->BaseURL, URLIS_URL))) && ((!(mi->volume_label && mi->disk_id > 1))|| source_matches_volume(mi, source_dir)|| (!(type==DRIVE_CDROM || type==DRIVE_REMOVEABLE)));
In this case, the pre-commit would default to requesting: msi_change_media(package, mi);
and the post-commit would: ERR("Cabinet not found: %s\n", debugstr_w(mi->cabinet)); return ERROR_INSTALL_FAILURE;
I haven't figured out how to use the winedbg yet well enough to check these conditions, perhaps someone else could? In the mean time I assume simply replacing the error with msi_change_media would be too much of a hack.
This is in: static UINT ready_media(MSIPACKAGE *package, MSIFILE *file, struct media_info *mi) in dlls/msi/files.c