From 7818c0e0e332edf8a991757d5cb8c1ad74b97a20 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Sun, 15 Feb 2015 10:15:31 +0100 Subject: [PATCH] Window: add menu entry for launching VeraCryptExpander --- src/Common/Language.xml | 2 ++ src/Mount/Mount.c | 28 ++++++++++++++++++++++++++++ src/Mount/Mount.rc | 1 + src/Mount/Resource.h | 3 ++- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/Common/Language.xml b/src/Common/Language.xml index 5a54f080..7585eece 100644 --- a/src/Common/Language.xml +++ b/src/Common/Language.xml @@ -243,6 +243,7 @@ Dismount Volume Verify Rescue Disk Version History + Volume Expander Volume Properties Volume Creation Wizard VeraCrypt Website @@ -535,6 +536,7 @@ &Mount A newer version of VeraCrypt is required to mount this volume. Error: Volume Creation Wizard not found.\n\nPlease make sure that the file 'VeraCrypt Format.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCrypt Format.exe' on your disk and run it. + Error: Volume Expander not found.\n\nPlease make sure that the file 'VeraCryptExpander.exe' is in the folder from which 'VeraCrypt.exe' was launched. If it is not, please reinstall VeraCrypt, or locate 'VeraCryptExpander.exe' on your disk and run it. &Next > &Finish &Install diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c index eb14d76e..c7835f0e 100644 --- a/src/Mount/Mount.c +++ b/src/Mount/Mount.c @@ -1055,6 +1055,28 @@ static void LaunchVolCreationWizard (HWND hwndDlg, const char *arg) } } +static void LaunchVolExpander (HWND hwndDlg) +{ + char t[TC_MAX_PATH] = {'"',0}; + char *tmp; + + GetModuleFileName (NULL, t+1, sizeof(t)-1); + + tmp = strrchr (t, '\\'); + if (tmp) + { + *tmp = 0; + StringCbCatA (t, sizeof(t), "\\VeraCryptExpander.exe\""); + + if (!FileExists(t)) + Error ("VOL_EXPANDER_NOT_FOUND", hwndDlg); // Display a user-friendly error message and advise what to do + else if (((int)ShellExecuteA (NULL, (!IsAdmin() && IsUacSupported()) ? "runas" : "open", t, NULL, NULL, SW_SHOW)) <= 32) + { + handleWin32Error (hwndDlg); + } + } +} + // Fills drive list // drive>0 = update only the corresponding drive subitems @@ -6433,6 +6455,12 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa return 1; } + if (lw == IDM_VOLUME_EXPANDER) + { + LaunchVolExpander (hwndDlg); + return 1; + } + if (lw == IDM_ADD_REMOVE_VOL_KEYFILES) { if (!VolumeSelected(hwndDlg)) diff --git a/src/Mount/Mount.rc b/src/Mount/Mount.rc index 7a498d7e..fdc50bc9 100644 --- a/src/Mount/Mount.rc +++ b/src/Mount/Mount.rc @@ -568,6 +568,7 @@ BEGIN MENUITEM "Test Vectors...", IDM_TEST_VECTORS MENUITEM SEPARATOR MENUITEM "Traveler Disk Setup...", IDM_TRAVELER + MENUITEM "Volume Expander", IDM_VOLUME_EXPANDER MENUITEM "Volume Creation Wizard", IDM_VOLUME_WIZARD MENUITEM SEPARATOR MENUITEM "Keyfile Generator", IDM_KEYFILE_GENERATOR diff --git a/src/Mount/Resource.h b/src/Mount/Resource.h index e63c59a6..ca2bdc84 100644 --- a/src/Mount/Resource.h +++ b/src/Mount/Resource.h @@ -225,6 +225,7 @@ #define IDM_PERFORMANCE_SETTINGS 40062 #define IDM_ANALYZE_SYSTEM_CRASH 40063 #define IDM_DONATE 40064 +#define IDM_VOLUME_EXPANDER 40065 // Next default values for new objects // @@ -232,7 +233,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 118 -#define _APS_NEXT_COMMAND_VALUE 40065 +#define _APS_NEXT_COMMAND_VALUE 40066 #define _APS_NEXT_CONTROL_VALUE 1141 #define _APS_NEXT_SYMED_VALUE 101 #endif