Module: wine Branch: oldstable Commit: bbf222c900eaa92988bb7f0d05a9fe0921123927 URL: https://source.winehq.org/git/wine.git/?a=commit;h=bbf222c900eaa92988bb7f0d0...
Author: Pierre Schweitzer pierre@reactos.org Date: Sat Nov 3 18:33:16 2018 +0100
msi: Don't consider read-only drives when enumerating volumes.
Signed-off-by: Pierre Schweitzer pierre@reactos.org Signed-off-by: Hans Leidekker hans@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit 0dd0d879a1c487dcefedd44762d4ea0fcebd98fe) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/msi/dialog.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index 61fb0b3..abecde1 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -3220,7 +3220,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); @@ -3237,6 +3237,13 @@ static void msi_dialog_vcl_add_drives( msi_dialog *dialog, msi_control *control ptr = drives; while (*ptr) { + if (GetVolumeInformationW(ptr, NULL, 0, NULL, 0, &flags, NULL, 0) && + flags & FILE_READ_ONLY_VOLUME) + { + ptr += lstrlenW(ptr) + 1; + continue; + } + lvitem.mask = LVIF_TEXT; lvitem.iItem = i; lvitem.iSubItem = 0;