diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Mount/Mount.c | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c index 83767be1..88dbfa5d 100644 --- a/src/Mount/Mount.c +++ b/src/Mount/Mount.c @@ -4415,9 +4415,9 @@ retry: return status;
}
-static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
+static BOOL MountAllDevicesThreadCode (HWND hwndDlg, BOOL bPasswordPrompt)
{
- HWND driveList = GetDlgItem (hwndDlg, IDC_DRIVELIST);
+ HWND driveList = GetDlgItem (MainDlg, IDC_DRIVELIST);
int selDrive = ListView_GetSelectionMark (driveList);
BOOL shared = FALSE, status = FALSE, bHeaderBakRetry = FALSE;
int mountedVolCount = 0;
@@ -4536,7 +4536,7 @@ static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt) if (mounted == 2)
shared = TRUE;
- LoadDriveLetters (hwndDlg, driveList, (HIWORD (GetItemLong (GetDlgItem (hwndDlg, IDC_DRIVELIST), selDrive))));
+ LoadDriveLetters (hwndDlg, driveList, (HIWORD (GetItemLong (GetDlgItem (MainDlg, IDC_DRIVELIST), selDrive))));
selDrive++;
if (bExplore)
@@ -4656,13 +4656,38 @@ ret: if (UsePreferences)
bCacheInDriver = bCacheInDriverDefault;
- EnableDisableButtons (hwndDlg);
+ EnableDisableButtons (MainDlg);
NormalCursor();
return status;
}
+typedef struct
+{
+ BOOL bPasswordPrompt;
+ BOOL bRet;
+} MountAllDevicesThreadParam;
+
+void CALLBACK mountAllDevicesThreadProc(void* pArg, HWND hwndDlg)
+{
+ MountAllDevicesThreadParam* threadParam =(MountAllDevicesThreadParam*) pArg;
+ BOOL bPasswordPrompt = threadParam->bPasswordPrompt;
+
+ threadParam->bRet = MountAllDevicesThreadCode (hwndDlg, bPasswordPrompt);
+}
+
+static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
+{
+ MountAllDevicesThreadParam param;
+ param.bPasswordPrompt = bPasswordPrompt;
+ param.bRet = FALSE;
+
+ ShowWaitDialog (hwndDlg, TRUE, mountAllDevicesThreadProc, ¶m);
+
+ return param.bRet;
+}
+
static void ChangePassword (HWND hwndDlg)
{
INT_PTR result;
|