mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 19:08:26 -06:00
Windows: implement wait dialog for benchmark operation.
This commit is contained in:
@@ -4348,7 +4348,24 @@ static void DisplayBenchmarkResults (HWND hwndDlg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL PerformBenchmark(HWND hwndDlg)
|
// specific implementation for support of benchmark operation in wait dialog mechanism
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
HWND hBenchDlg;
|
||||||
|
BOOL bStatus;
|
||||||
|
} BenchmarkThreadParam;
|
||||||
|
|
||||||
|
static BOOL PerformBenchmark(HWND hBenchDlg, HWND hwndDlg);
|
||||||
|
|
||||||
|
void CALLBACK BenchmarkThreadProc(void* pArg, HWND hwndDlg)
|
||||||
|
{
|
||||||
|
BenchmarkThreadParam* pThreadParam = (BenchmarkThreadParam*) pArg;
|
||||||
|
|
||||||
|
pThreadParam->bStatus = PerformBenchmark (pThreadParam->hBenchDlg, hwndDlg);
|
||||||
|
}
|
||||||
|
|
||||||
|
static BOOL PerformBenchmark(HWND hBenchDlg, HWND hwndDlg)
|
||||||
{
|
{
|
||||||
LARGE_INTEGER performanceCountStart, performanceCountEnd;
|
LARGE_INTEGER performanceCountStart, performanceCountEnd;
|
||||||
BYTE *lpTestBuffer;
|
BYTE *lpTestBuffer;
|
||||||
@@ -4569,10 +4586,10 @@ static BOOL PerformBenchmark(HWND hwndDlg)
|
|||||||
|
|
||||||
benchmarkLastBufferSize = benchmarkBufferSize;
|
benchmarkLastBufferSize = benchmarkBufferSize;
|
||||||
|
|
||||||
DisplayBenchmarkResults(hwndDlg);
|
DisplayBenchmarkResults(hBenchDlg);
|
||||||
|
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PERFORM_BENCHMARK), TRUE);
|
EnableWindow (GetDlgItem (hBenchDlg, IDC_PERFORM_BENCHMARK), TRUE);
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDCLOSE), TRUE);
|
EnableWindow (GetDlgItem (hBenchDlg, IDCLOSE), TRUE);
|
||||||
|
|
||||||
NormalCursor ();
|
NormalCursor ();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -4588,8 +4605,8 @@ counter_error:
|
|||||||
|
|
||||||
NormalCursor ();
|
NormalCursor ();
|
||||||
|
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PERFORM_BENCHMARK), TRUE);
|
EnableWindow (GetDlgItem (hBenchDlg, IDC_PERFORM_BENCHMARK), TRUE);
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDCLOSE), TRUE);
|
EnableWindow (GetDlgItem (hBenchDlg, IDCLOSE), TRUE);
|
||||||
|
|
||||||
MessageBoxW (hwndDlg, GetString ("ERR_PERF_COUNTER"), lpszTitle, ICON_HAND);
|
MessageBoxW (hwndDlg, GetString ("ERR_PERF_COUNTER"), lpszTitle, ICON_HAND);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -4766,7 +4783,13 @@ BOOL CALLBACK BenchmarkDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP
|
|||||||
nIndex = SendMessage (hCboxBufferSize, CB_GETCURSEL, 0, 0);
|
nIndex = SendMessage (hCboxBufferSize, CB_GETCURSEL, 0, 0);
|
||||||
benchmarkBufferSize = SendMessage (hCboxBufferSize, CB_GETITEMDATA, nIndex, 0);
|
benchmarkBufferSize = SendMessage (hCboxBufferSize, CB_GETITEMDATA, nIndex, 0);
|
||||||
|
|
||||||
if (PerformBenchmark (hwndDlg) == FALSE)
|
BenchmarkThreadParam threadParam;
|
||||||
|
threadParam.hBenchDlg = hwndDlg;
|
||||||
|
threadParam.bStatus = FALSE;
|
||||||
|
|
||||||
|
ShowWaitDialog (hwndDlg, TRUE, BenchmarkThreadProc, &threadParam);
|
||||||
|
|
||||||
|
if (threadParam.bStatus == FALSE)
|
||||||
{
|
{
|
||||||
EndDialog (hwndDlg, IDCLOSE);
|
EndDialog (hwndDlg, IDCLOSE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user