/* Copyright (c) 2008-2010 TrueCrypt Developers Association. All rights reserved. Governed by the TrueCrypt License 3.0 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution packages. */ #ifndef TC_HEADER_Main_CommandInterface #define TC_HEADER_Main_CommandInterface #include "System.h" #include "Main.h" #include "Volume/VolumeInfo.h" #include "Core/MountOptions.h" #include "Core/VolumeCreator.h" #include "UserPreferences.h" #include "UserInterfaceType.h" namespace VeraCrypt { struct CommandId { enum Enum { None, AutoMountDevices, AutoMountDevicesFavorites, AutoMountFavorites, BackupHeaders, ChangePassword, CreateKeyfile, CreateVolume, DeleteSecurityTokenKeyfiles, DismountVolumes, DisplayVersion, DisplayVolumeProperties, ExportSecurityTokenKeyfile, Help, ImportSecurityTokenKeyfiles, ListSecurityTokenKeyfiles, ListVolumes, MountVolume, RestoreHeaders, SavePreferences, Test }; }; struct CommandLineInterface { public: CommandLineInterface (int argc, wchar_t** argv, UserInterfaceType::Enum interfaceType); virtual ~CommandLineInterface (); CommandId::Enum ArgCommand; bool ArgDisplayPassword; shared_ptr ArgEncryptionAlgorithm; shared_ptr ArgFilePath; VolumeCreationOptions::FilesystemType::Enum ArgFilesystem; bool ArgForce; shared_ptr ArgHash; shared_ptr ArgCurrentHash; shared_ptr ArgKeyfiles; MountOptions ArgMountOptions; shared_ptr ArgMountPoint; shared_ptr ArgNewKeyfiles; shared_ptr ArgNewPassword; int ArgNewPim; bool ArgNoHiddenVolumeProtection; shared_ptr ArgPassword; int ArgPim; bool ArgQuick; FilesystemPath ArgRandomSourcePath; uint64 ArgSize; shared_ptr ArgVolumePath; VolumeInfoList ArgVolumes; VolumeType::Enum ArgVolumeType; bool ArgTrueCryptMode; bool StartBackgroundTask; UserPreferences Preferences; protected: void CheckCommandSingle () const; shared_ptr ToKeyfileList (const wxString &arg) const; VolumeInfoList GetMountedVolumes (const wxString &filter) const; private: CommandLineInterface (const CommandLineInterface &); CommandLineInterface &operator= (const CommandLineInterface &); }; extern auto_ptr CmdLine; } #endif // TC_HEADER_Main_CommandInterface