Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46081 Signed-off-by: Fabian Maurer dark.shadow4@web.de --- dlls/msi/dialog.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index a3797c2c04..ce73b4dcd7 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -3289,7 +3289,7 @@ static void msi_dialog_vcl_add_drives( msi_dialog *dialog, msi_control *control WCHAR cost_text[MAX_PATH]; LPWSTR drives, ptr; LVITEMW lvitem; - DWORD size; + DWORD size, flags; int i = 0;
cost = msi_vcl_get_cost(dialog); @@ -3306,6 +3306,15 @@ static void msi_dialog_vcl_add_drives( msi_dialog *dialog, msi_control *control ptr = drives; while (*ptr) { + if (!GetVolumeInformationW(ptr, NULL, 0, NULL, NULL, &flags, NULL, 0)) + ERR("GetVolumeInformationW failed: %d\n", GetLastError()); + + if (flags & FILE_READ_ONLY_VOLUME) + { + ptr += lstrlenW(ptr) + 1; + continue; + } + lvitem.mask = LVIF_TEXT; lvitem.iItem = i; lvitem.iSubItem = 0;