mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 02:58:02 -06:00
112 lines
4.5 KiB
C
112 lines
4.5 KiB
C
/*
|
|
Legal Notice: Some portions of the source code contained in this file were
|
|
derived from the source code of TrueCrypt 7.1a, which is
|
|
Copyright (c) 2003-2012 TrueCrypt Developers Association and which is
|
|
governed by the TrueCrypt License 3.0, also from the source code of
|
|
Encryption for the Masses 2.02a, which is Copyright (c) 1998-2000 Paul Le Roux
|
|
and which is governed by the 'License Agreement for Encryption for the Masses'
|
|
Modifications and additions to the original source code (contained in this file)
|
|
and all other portions of this file are Copyright (c) 2013-2017 IDRIX
|
|
and are governed by the Apache License 2.0 the full text of which is
|
|
contained in the file License.txt included in VeraCrypt binary and source
|
|
code distribution packages. */
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum mount_list_item_types
|
|
{
|
|
TC_MLIST_ITEM_FREE = 0,
|
|
TC_MLIST_ITEM_NONSYS_VOL,
|
|
TC_MLIST_ITEM_SYS_PARTITION,
|
|
TC_MLIST_ITEM_SYS_DRIVE
|
|
};
|
|
|
|
#define TC_MAIN_WINDOW_FLAG_ADMIN_PRIVILEGES 0x1
|
|
|
|
#define TRAYICON_MENU_DRIVE_OFFSET 9000
|
|
#define TC_FAVORITE_MENU_CMD_ID_OFFSET 10000
|
|
#define TC_FAVORITE_MENU_CMD_ID_OFFSET_END (TC_FAVORITE_MENU_CMD_ID_OFFSET + 1000)
|
|
|
|
#define WM_COPY_SET_VOLUME_NAME "VNAM"
|
|
|
|
#define ENC_SYSDRIVE_PSEUDO_DRIVE_LETTER ('A' - 1)
|
|
|
|
/* Password Change dialog modes */
|
|
enum
|
|
{
|
|
PCDM_CHANGE_PASSWORD = 0,
|
|
PCDM_CHANGE_PKCS5_PRF,
|
|
PCDM_ADD_REMOVE_VOL_KEYFILES,
|
|
PCDM_REMOVE_ALL_KEYFILES_FROM_VOL
|
|
};
|
|
|
|
typedef struct
|
|
{
|
|
Password *password;
|
|
int* pkcs5;
|
|
int* pim;
|
|
BOOL* truecryptMode;
|
|
} PasswordDlgParam;
|
|
|
|
extern BOOL bEnableBkgTask;
|
|
extern BOOL bCloseBkgTaskWhenNoVolumes;
|
|
extern BOOL bPlaySoundOnSuccessfulHkDismount;
|
|
extern BOOL bDisplayBalloonOnSuccessfulHkDismount;
|
|
extern BOOL bExplore;
|
|
extern BOOL bTryEmptyPasswordWhenKeyfileUsed;
|
|
|
|
static void localcleanup ( void );
|
|
void EndMainDlg ( HWND hwndDlg );
|
|
BOOL VolumeSelected (HWND hwndDlg );
|
|
void LoadSettings ( HWND hwndDlg );
|
|
void SaveSettings ( HWND hwndDlg );
|
|
BOOL SelectItem ( HWND hTree , wchar_t nLetter );
|
|
void LoadDriveLetters ( HWND hwndDlg, HWND hTree, int drive );
|
|
BOOL CALLBACK PasswordChangeDlgProc ( HWND hwndDlg , UINT msg , WPARAM wParam , LPARAM lParam );
|
|
BOOL CALLBACK PasswordDlgProc ( HWND hwndDlg , UINT msg , WPARAM wParam , LPARAM lParam );
|
|
BOOL CALLBACK MountOptionsDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
void BuildTree ( HWND hwndDlg, HWND hTree );
|
|
LPARAM GetSelectedLong ( HWND hTree );
|
|
LPARAM GetItemLong ( HWND hTree, int itemNo );
|
|
BOOL CALLBACK CommandHelpDlgProc ( HWND hwndDlg , UINT msg , WPARAM wParam , LPARAM lParam );
|
|
BOOL CALLBACK MainDialogProc ( HWND hwndDlg , UINT uMsg , WPARAM wParam , LPARAM lParam );
|
|
void ExtractCommandLine ( HWND hwndDlg , wchar_t *lpszCommandLine );
|
|
static void WipeCache (HWND hwndDlg, BOOL silent);
|
|
void OpenVolumeExplorerWindow (int driveNo);
|
|
BOOL TaskBarIconAdd (HWND hwnd);
|
|
BOOL TaskBarIconRemove (HWND hwnd);
|
|
BOOL TaskBarIconChange (HWND hwnd, int iconId);
|
|
void DismountIdleVolumes ();
|
|
static void SaveDefaultKeyFilesParam (HWND hwnd);
|
|
static BOOL Dismount (HWND hwndDlg, int nDosDriveNo);
|
|
static BOOL DismountAll (HWND hwndDlg, BOOL forceUnmount, BOOL interact, int dismountMaxRetries, int dismountAutoRetryDelay);
|
|
static void KeyfileDefaultsDlg (HWND hwndDlg);
|
|
static void HandleHotKey (HWND hwndDlg, WPARAM wParam);
|
|
static BOOL CheckMountList (HWND hwndDlg, BOOL bForceTaskBarUpdate);
|
|
int GetCipherBlockSizeByDriveNo (int nDosDriveNo);
|
|
int GetModeOfOperationByDriveNo (int nDosDriveNo);
|
|
void ChangeMainWindowVisibility ();
|
|
BOOL WholeSysDriveEncryption (BOOL bSilent);
|
|
BOOL CheckSysEncMountWithoutPBA (HWND hwndDlg, const wchar_t *devicePath, BOOL quiet);
|
|
BOOL TCBootLoaderOnInactiveSysEncDrive (wchar_t *szDevicePath);
|
|
void CreateRescueDisk (HWND hwndDlg);
|
|
int BackupVolumeHeader (HWND hwndDlg, BOOL bRequireConfirmation, const wchar_t *lpszVolume);
|
|
int RestoreVolumeHeader (HWND hwndDlg, const wchar_t *lpszVolume);
|
|
void SecurityTokenPreferencesDialog (HWND hwndDlg);
|
|
static BOOL CALLBACK PerformanceSettingsDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
static BOOL CALLBACK BootLoaderPreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
void MountSelectedVolume (HWND hwndDlg, BOOL mountWithOptions);
|
|
uint32 ReadDriverConfigurationFlags ();
|
|
void HookMouseWheel (HWND hwndDlg, UINT ctrlId);
|
|
static BOOL HandleDriveListMouseWheelEvent (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL bListMustBePointed);
|
|
static BOOL CALLBACK DefaultMountParametersDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
|
|
#endif
|