From 8288fecc0ad74624f489bbdf3fb71cb1a1fbf286 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Fri, 28 Jul 2017 23:30:10 +0200 Subject: Windows: Add portable installer that only extra binaries without the need of administrative privileges for extraction. --- src/Setup/Portable.manifest | 33 +++++ src/Setup/Portable.rc | 250 +++++++++++++++++++++++++++++++++++++ src/Setup/Portable.vcxproj | 217 ++++++++++++++++++++++++++++++++ src/Setup/Portable.vcxproj.filters | 154 +++++++++++++++++++++++ src/Setup/Portable.vcxproj.user | 3 + src/Setup/SelfExtract.c | 9 +- src/Setup/Setup.c | 28 ++++- src/Setup/Wizard.c | 55 +++++--- src/Signing/sign.bat | 6 +- src/VeraCrypt.sln | 114 +++++++++++++++++ 10 files changed, 846 insertions(+), 23 deletions(-) create mode 100644 src/Setup/Portable.manifest create mode 100644 src/Setup/Portable.rc create mode 100644 src/Setup/Portable.vcxproj create mode 100644 src/Setup/Portable.vcxproj.filters create mode 100644 src/Setup/Portable.vcxproj.user (limited to 'src') diff --git a/src/Setup/Portable.manifest b/src/Setup/Portable.manifest new file mode 100644 index 00000000..5d4cb896 --- /dev/null +++ b/src/Setup/Portable.manifest @@ -0,0 +1,33 @@ + + + + + + + + + + + + true + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Setup/Portable.rc b/src/Setup/Portable.rc new file mode 100644 index 00000000..ca6d9570 --- /dev/null +++ b/src/Setup/Portable.rc @@ -0,0 +1,250 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" +#include "..\\common\\resource.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,22,2,6 + PRODUCTVERSION 1,22,2,6 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "IDRIX" + VALUE "FileDescription", "VeraCrypt Portable" + VALUE "FileVersion", "1.22" + VALUE "LegalTrademarks", "VeraCrypt" + VALUE "OriginalFilename", "VeraCrypt Portable.exe" + VALUE "ProductName", "VeraCrypt" + VALUE "ProductVersion", "1.22" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// HEADER +// + +IDR_SETUP_RSRC_HEADER HEADER "resource.h" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_INFO_PAGE_DLG DIALOGEX 0, 0, 217, 156 +STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + LTEXT "",IDC_BOX_HELP,0,10,217,146 +END + +IDD_INTRO_PAGE_DLG DIALOGEX 0, 0, 346, 152 +STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + CONTROL "",IDC_LICENSE_TEXT,"RichEdit20W",WS_BORDER | WS_VSCROLL | WS_TABSTOP | 0x2804,0,23,345,108 + CONTROL "",IDC_AGREE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,2,137,126,10 + LTEXT "",IDC_BOX_HELP,0,0,346,22 +END + +IDD_INSTL_DLG DIALOGEX 0, 0, 374, 231 +STYLE DS_SETFONT | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "VeraCrypt Portable Wizard" +CLASS "VeraCryptCustomDlg" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + PUSHBUTTON "&Help",IDHELP,150,211,50,14 + PUSHBUTTON "",IDC_PREV,209,211,50,14 + DEFPUSHBUTTON "",IDC_NEXT,259,211,50,14 + PUSHBUTTON "Cancel",IDCANCEL,317,211,50,14 + LTEXT "",IDC_BOX_TITLE,11,5,324,12,0,WS_EX_TRANSPARENT + CONTROL 107,IDC_BITMAP_SETUP_WIZARD,"Static",SS_BITMAP | SS_NOTIFY,139,3,228,30 + CONTROL 109,IDC_SETUP_WIZARD_BKG,"Static",SS_BITMAP,0,0,11,10 + CONTROL "",IDC_SETUP_WIZARD_GFX_AREA,"Static",SS_GRAYRECT | NOT WS_VISIBLE,0,0,378,36,WS_EX_TRANSPARENT | WS_EX_STATICEDGE + CONTROL "",IDC_HR_BOTTOM,"Static",SS_ETCHEDHORZ,67,204,306,1,WS_EX_STATICEDGE + CONTROL "",IDC_HR,"Static",SS_ETCHEDHORZ,0,35,399,1,WS_EX_STATICEDGE + LTEXT "VeraCrypt Portable",IDC_STATIC,4,200,62,8,WS_DISABLED + LTEXT "",IDC_BOX_INFO,18,18,317,13,0,WS_EX_TRANSPARENT + LTEXT "",IDC_MAIN_CONTENT_CANVAS,0,36,374,164 + LTEXT "",IDC_POS_BOX,14,42,346,155,0,WS_EX_TRANSPARENT +END + +IDD_EXTRACTION_OPTIONS_PAGE_DLG DIALOGEX 0, 0, 346, 152 +STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + PUSHBUTTON "Bro&wse...",IDC_BROWSE,277,32,62,14 + EDITTEXT IDC_DESTINATION,6,33,264,12,ES_AUTOHSCROLL + LTEXT "Please select or type the location where you want to place the extracted files:",IDT_EXTRACT_DESTINATION,6,15,333,17 + CONTROL "&Open the destination location when finished",IDC_OPEN_CONTAINING_FOLDER, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,91,318,16 + LTEXT "",IDC_BOX_HELP,6,56,333,32 +END + +IDD_PROGRESS_PAGE_DLG DIALOGEX 0, 0, 346, 152 +STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + LISTBOX IDC_LOG_WINDOW,0,1,345,131,LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | LBS_NOSEL | WS_VSCROLL + CONTROL "",IDC_PROGRESS_BAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,0,139,345,12 +END + +IDD_DONATIONS_PAGE_DLG DIALOGEX 0, 0, 346, 152 +STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD +EXSTYLE WS_EX_TRANSPARENT +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + PUSHBUTTON "Donate now...",IDC_DONATE,124,94,96,14 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_SETUP ICON "Setup.ico" + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "#include ""..\\\\common\\\\resource.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "#include ""..\\\\common\\\\common.rc""\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_INFO_PAGE_DLG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 210 + TOPMARGIN, 7 + BOTTOMMARGIN, 149 + END + + IDD_INTRO_PAGE_DLG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 339 + TOPMARGIN, 7 + BOTTOMMARGIN, 145 + END + + IDD_INSTL_DLG, DIALOG + BEGIN + END + + IDD_EXTRACTION_OPTIONS_PAGE_DLG, DIALOG + BEGIN + RIGHTMARGIN, 343 + BOTTOMMARGIN, 147 + END + + IDD_PROGRESS_PAGE_DLG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 339 + TOPMARGIN, 7 + BOTTOMMARGIN, 145 + END + + IDD_DONATIONS_PAGE_DLG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 339 + TOPMARGIN, 7 + BOTTOMMARGIN, 147 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_SETUP_WIZARD BITMAP "VeraCrypt_setup.bmp" +IDB_SETUP_WIZARD_BKG BITMAP "VeraCrypt_setup_background.bmp" +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#include "..\\common\\common.rc" + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/src/Setup/Portable.vcxproj b/src/Setup/Portable.vcxproj new file mode 100644 index 00000000..78f48197 --- /dev/null +++ b/src/Setup/Portable.vcxproj @@ -0,0 +1,217 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87} + Portable + Win32Proj + + + + Application + Unicode + Windows7.1SDK + + + Application + Unicode + Windows7.1SDK + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + PortableDebug\ + PortableDebug\ + true + true + true + PortableRelease\ + PortableRelease\ + false + true + VeraCryptPortable + VeraCryptPortable + + + + Disabled + ..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;%(AdditionalIncludeDirectories) + SETUP;PORTABLE;WIN32;HAVE_CONFIG_H;ZIP_STATIC;DEBUG;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + + + Level4 + EditAndContinue + 4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings) + + + /NODEFAULTLIB:LIBCMTD %(AdditionalOptions) + libcmtd.lib;atlsd.lib;mpr.lib;..\Common\Debug\Zip.lib;%(AdditionalDependencies) + $(OutDir)VeraCryptPortable.exe + AsInvoker + user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;mpr.dll;%(DelayLoadDLLs) + true + $(OutDir)Portable.pdb + Windows + false + true + MachineX86 + + + Portable.manifest;%(AdditionalManifestFiles) + + + md "..\Debug\Setup Files" 2>NUL: +copy PortableDebug\VeraCryptPortable.exe "..\Debug\Setup Files\VeraCrypt Portable.exe" >NUL: + + + + + + /w34189 %(AdditionalOptions) + MaxSpeed + ..\Common;..\Crypto;..\;..\PKCS11;..\Common\zlib;..\Common\libzip;%(AdditionalIncludeDirectories) + SETUP;PORTABLE;WIN32;HAVE_CONFIG_H;ZIP_STATIC;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NON_CONFORMING_SWPRINTFS;_ATL_NO_DEFAULT_LIBS;%(PreprocessorDefinitions) + MultiThreaded + true + + + All + $(IntDir) + Level4 + ProgramDatabase + 4057;4100;4127;4201;4505;4701;4706;4131;%(DisableSpecificWarnings) + + + /IGNORE:4089 %(AdditionalOptions) + mpr.lib;..\Common\Release\Zip.lib;%(AdditionalDependencies) + $(OutDir)VeraCryptPortable.exe + AsInvoker + user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;mpr.dll;%(DelayLoadDLLs) + true + true + Windows + true + true + true + true + MachineX86 + + + Portable.manifest;%(AdditionalManifestFiles) + + + copy PortableRelease\VeraCryptPortable.exe "..\Release\Setup Files\VeraCrypt Portable.exe" + + + + + + + CompileAsCpp + CompileAsCpp + + + CompileAsCpp + CompileAsCpp + + + + + + CompileAsCpp + CompileAsCpp + + + CompileAsCpp + CompileAsCpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + + + + + + {8b7f059f-e4c7-4e11-88f5-ee8b8433072e} + false + + + {9715ff1d-599b-4bbc-ad96-bef6e08ff827} + false + + + {9dc1abe2-d18b-48fb-81d2-8c50adc57bcf} + false + + + {e4c40f94-e7f9-4981-86e4-186b46f993f3} + false + + + + + + \ No newline at end of file diff --git a/src/Setup/Portable.vcxproj.filters b/src/Setup/Portable.vcxproj.filters new file mode 100644 index 00000000..855ecc00 --- /dev/null +++ b/src/Setup/Portable.vcxproj.filters @@ -0,0 +1,154 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {876C2050-1694-4F32-AF5D-491C6A43A799} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx + + + {17370B4B-2D76-41A9-9828-015FB30054F6} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\Common + + + Source Files\Common + + + Source Files\Common + + + Source Files\Common + + + Source Files\Common + + + Source Files\Common + + + Source Files + + + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files\Common + + + Resource Files\Common + + + Resource Files\Common + + + Resource Files\Common + + + Resource Files\Common + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + + + + Resource Files\Common + + + Resource Files + + + \ No newline at end of file diff --git a/src/Setup/Portable.vcxproj.user b/src/Setup/Portable.vcxproj.user new file mode 100644 index 00000000..ace9a86a --- /dev/null +++ b/src/Setup/Portable.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/Setup/SelfExtract.c b/src/Setup/SelfExtract.c index 18bc1255..8c155c64 100644 --- a/src/Setup/SelfExtract.c +++ b/src/Setup/SelfExtract.c @@ -29,8 +29,11 @@ #define SRC_POS (__FUNCTION__ ":" TC_TO_STRING(__LINE__)) #endif +#ifdef PORTABLE +#define OutputPackageFile L"VeraCrypt Portable " _T(VERSION_STRING) L".exe" +#else #define OutputPackageFile L"VeraCrypt Setup " _T(VERSION_STRING) L".exe" - +#endif #define MAG_START_MARKER "TCINSTRT" #define MAG_END_MARKER_OBFUSCATED "T/C/I/N/S/C/R/C" #define PIPE_BUFFER_LEN (4 * BYTES_PER_KB) @@ -146,7 +149,11 @@ BOOL MakeSelfExtractingPackage (HWND hwndDlg, wchar_t *szDestDir) if (!TCCopyFile (inputFile, outputFile)) { handleWin32Error (hwndDlg, SRC_POS); +#ifdef PORTABLE + PkgError (L"Cannot copy 'VeraCrypt Portable.exe' to the package"); +#else PkgError (L"Cannot copy 'VeraCrypt Setup.exe' to the package"); +#endif goto err; } diff --git a/src/Setup/Setup.c b/src/Setup/Setup.c index 3da3609d..a1f27f41 100644 --- a/src/Setup/Setup.c +++ b/src/Setup/Setup.c @@ -1058,6 +1058,7 @@ err: return bOK; } +#ifndef PORTABLE BOOL DoRegInstall (HWND hwndDlg, wchar_t *szDestDir, BOOL bInstallType) { wchar_t szDir[TC_MAX_PATH], *key; @@ -2493,6 +2494,7 @@ BOOL CALLBACK UninstallDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lP return 0; } +#endif int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpszCommandLine, int nCmdShow) @@ -2501,18 +2503,22 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz SelfExtractStartupInit(); +#ifdef PORTABLE + lpszTitle = L"VeraCrypt Portable"; +#else lpszTitle = L"VeraCrypt Setup"; - +#endif /* Call InitApp to initialize the common code */ InitApp (hInstance, NULL); +#ifndef PORTABLE if (IsAdmin () != TRUE) if (MessageBoxW (NULL, GetString ("SETUP_ADMIN"), lpszTitle, MB_YESNO | MB_ICONQUESTION) != IDYES) { FinalizeApp (); exit (1); } - +#endif /* Setup directory */ { wchar_t *s; @@ -2526,6 +2532,7 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz if (lpszCommandLine[0] == L'/') { +#ifndef PORTABLE if (lpszCommandLine[1] == L'u') { // Uninstall: /u @@ -2538,7 +2545,9 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz bChangeMode = TRUE; } - else if (lpszCommandLine[1] == L'p') + else +#endif + if (lpszCommandLine[1] == L'p') { // Create self-extracting package: /p @@ -2559,8 +2568,9 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz } else { +#ifndef PORTABLE SetInstallationPath (NULL); - +#endif if (!bUninstall) { if (IsSelfExtractingPackage()) @@ -2574,11 +2584,16 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz } else if (!bDevm) { +#ifndef PORTABLE MessageBox (NULL, L"Error: This installer file does not contain any compressed files.\n\nTo create a self-extracting installation package (with embedded compressed files), run:\n\"VeraCrypt Setup.exe\" /p", L"VeraCrypt", MB_ICONERROR | MB_SETFOREGROUND | MB_TOPMOST); +#else + MessageBox (NULL, L"Error: This portable installer file does not contain any compressed files.\n\nTo create a self-extracting portable installation package (with embedded compressed files), run:\n\"VeraCrypt Portable.exe\" /p", L"VeraCrypt", MB_ICONERROR | MB_SETFOREGROUND | MB_TOPMOST); +#endif FinalizeApp (); exit (1); } +#ifndef PORTABLE if (bChangeMode) { /* VeraCrypt is already installed on this system and we were launched from the Program Files folder */ @@ -2599,8 +2614,10 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz exit (1); } } +#endif } +#ifndef PORTABLE // System Restore if (IsSystemRestoreEnabled ()) { @@ -2615,6 +2632,7 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz } else SystemRestoreDll = 0; +#endif if (!bUninstall) { @@ -2623,6 +2641,7 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz DialogBoxParamW (hInstance, MAKEINTRESOURCEW (IDD_INSTL_DLG), NULL, (DLGPROC) MainDialogProc, (LPARAM)lpszCommandLine); } +#ifndef PORTABLE else { /* Create the main dialog for uninstall */ @@ -2648,6 +2667,7 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz } } } +#endif } FinalizeApp (); return 0; diff --git a/src/Setup/Wizard.c b/src/Setup/Wizard.c index fa877589..0303f2e6 100644 --- a/src/Setup/Wizard.c +++ b/src/Setup/Wizard.c @@ -32,9 +32,11 @@ using namespace std; enum wizard_pages { INTRO_PAGE, +#ifndef PORTABLE WIZARD_MODE_PAGE, INSTALL_OPTIONS_PAGE, INSTALL_PROGRESS_PAGE, +#endif EXTRACTION_OPTIONS_PAGE, EXTRACTION_PROGRESS_PAGE, DONATIONS_PAGE @@ -126,6 +128,7 @@ void LoadPage (HWND hwndDlg, int nPageNo) (DLGPROC) PageDialogProc); break; +#ifndef PORTABLE case WIZARD_MODE_PAGE: hCurPage = CreateDialogW (hInst, MAKEINTRESOURCEW (IDD_WIZARD_MODE_PAGE_DLG), hwndDlg, (DLGPROC) PageDialogProc); @@ -140,6 +143,7 @@ void LoadPage (HWND hwndDlg, int nPageNo) hCurPage = CreateDialogW (hInst, MAKEINTRESOURCEW (IDD_PROGRESS_PAGE_DLG), hwndDlg, (DLGPROC) PageDialogProc); break; +#endif case EXTRACTION_OPTIONS_PAGE: hCurPage = CreateDialogW (hInst, MAKEINTRESOURCEW (IDD_EXTRACTION_OPTIONS_PAGE_DLG), hwndDlg, @@ -223,6 +227,10 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa { char *licenseText = NULL; +#ifdef PORTABLE + bExtractOnly = TRUE; +#endif + // increase size limit of rich edit control SendMessage (GetDlgItem (hwndDlg, IDC_LICENSE_TEXT), EM_EXLIMITTEXT, 0, -1); // Left margin for license text @@ -272,6 +280,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa } return 1; +#ifndef PORTABLE case WIZARD_MODE_PAGE: { LONG driverVersion; @@ -310,6 +319,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa EnableWindow (GetDlgItem (GetParent (hwndDlg), IDC_PREV), TRUE); } return 1; +#endif case EXTRACTION_OPTIONS_PAGE: @@ -382,6 +392,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa return 1; +#ifndef PORTABLE case INSTALL_OPTIONS_PAGE: { LONG driverVersion; @@ -485,6 +496,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa } return 1; +#endif case DONATIONS_PAGE: @@ -600,7 +612,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa EnableWindow (GetDlgItem (GetParent (hwndDlg), IDC_NEXT), IsButtonChecked (GetDlgItem (hwndDlg, IDC_AGREE))); return 1; } - +#ifndef PORTABLE if (lw == IDC_WIZARD_MODE_EXTRACT_ONLY && nCurPageNo == WIZARD_MODE_PAGE) { bExtractOnly = TRUE; @@ -612,19 +624,19 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa bExtractOnly = FALSE; return 1; } - +#endif if ( nCurPageNo == EXTRACTION_OPTIONS_PAGE && hw == EN_CHANGE ) { EnableWindow (GetDlgItem (MainDlg, IDC_NEXT), (GetWindowTextLength (GetDlgItem (hCurPage, IDC_DESTINATION)) > 1)); return 1; } - +#ifndef PORTABLE if ( nCurPageNo == INSTALL_OPTIONS_PAGE && hw == EN_CHANGE ) { EnableWindow (GetDlgItem (MainDlg, IDC_NEXT), (GetWindowTextLength (GetDlgItem (hCurPage, IDC_DESTINATION)) > 1)); return 1; } - +#endif if ( nCurPageNo == EXTRACTION_OPTIONS_PAGE ) { switch (lw) @@ -645,7 +657,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa return 1; } } - +#ifndef PORTABLE if ( nCurPageNo == INSTALL_OPTIONS_PAGE ) { switch (lw) @@ -683,7 +695,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa } } - +#endif if (nCurPageNo == DONATIONS_PAGE) { switch (lw) @@ -829,8 +841,11 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa nPbar = IDC_PROGRESS_BAR; SendMessage (GetDlgItem (hwndDlg, IDC_BOX_TITLE), WM_SETFONT, (WPARAM) hUserBoldFont, (LPARAM) TRUE); - +#ifndef PORTABLE SetWindowText (hwndDlg, L"VeraCrypt Setup " _T(VERSION_STRING)); +#else + SetWindowText (hwndDlg, L"VeraCrypt Portable " _T(VERSION_STRING)); +#endif DonColorSchemeId = GetDonVal (2, 9); @@ -843,7 +858,12 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa bDesktopIcon = TRUE; bLicenseAccepted = TRUE; bStartInstall = TRUE; +#ifdef PORTABLE + bExtractOnly = TRUE; + LoadPage (hwndDlg, EXTRACTION_PROGRESS_PAGE); +#else LoadPage (hwndDlg, INSTALL_PROGRESS_PAGE); +#endif } else LoadPage (hwndDlg, INTRO_PAGE); @@ -909,7 +929,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa RegCloseKey (hkey); } } - +#ifndef PORTABLE else if (nCurPageNo == WIZARD_MODE_PAGE) { if (IsButtonChecked (GetDlgItem (hCurPage, IDC_WIZARD_MODE_EXTRACT_ONLY))) @@ -926,14 +946,14 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa nCurPageNo = EXTRACTION_OPTIONS_PAGE - 1; } } - +#endif else if (nCurPageNo == EXTRACTION_OPTIONS_PAGE) { GetWindowText (GetDlgItem (hCurPage, IDC_DESTINATION), WizardDestExtractPath, ARRAYSIZE (WizardDestExtractPath)); bStartExtraction = TRUE; } - +#ifndef PORTABLE else if (nCurPageNo == INSTALL_OPTIONS_PAGE) { GetWindowText (GetDlgItem (hCurPage, IDC_DESTINATION), WizardDestInstallPath, ARRAYSIZE (WizardDestInstallPath)); @@ -946,7 +966,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa PostMessage (hwndDlg, WM_CLOSE, 0, 0); return 1; } - +#endif else if (nCurPageNo == EXTRACTION_PROGRESS_PAGE) { PostMessage (hwndDlg, WM_CLOSE, 0, 0); @@ -969,22 +989,25 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa if (lw == IDC_PREV) { +#ifndef PORTABLE if (nCurPageNo == WIZARD_MODE_PAGE) { bExtractOnly = IsButtonChecked (GetDlgItem (hCurPage, IDC_WIZARD_MODE_EXTRACT_ONLY)); - } - - else if (nCurPageNo == EXTRACTION_OPTIONS_PAGE) + } else +#endif + if (nCurPageNo == EXTRACTION_OPTIONS_PAGE) { GetWindowText (GetDlgItem (hCurPage, IDC_DESTINATION), WizardDestExtractPath, ARRAYSIZE (WizardDestExtractPath)); +#ifndef PORTABLE nCurPageNo = WIZARD_MODE_PAGE + 1; +#endif } - +#ifndef PORTABLE else if (nCurPageNo == INSTALL_OPTIONS_PAGE) { GetWindowText (GetDlgItem (hCurPage, IDC_DESTINATION), WizardDestInstallPath, ARRAYSIZE (WizardDestInstallPath)); } - +#endif LoadPage (hwndDlg, --nCurPageNo); return 1; diff --git a/src/Signing/sign.bat b/src/Signing/sign.bat index 40f60244..b62fe864 100644 --- a/src/Signing/sign.bat +++ b/src/Signing/sign.bat @@ -1,5 +1,6 @@ PATH=%PATH%;%WSDK81%\bin\x86;C:\Program Files\7-Zip;C:\Program Files (x86)\7-Zip +set VC_VERSION=1.22-BETA2-Build5 set SIGNINGPATH=%~dp0 cd %SIGNINGPATH% @@ -40,6 +41,7 @@ del docs.zip 7z a -y docs.zip docs "VeraCrypt Setup.exe" /p +"VeraCrypt Portable.exe" /p del LICENSE del License.txt @@ -54,8 +56,8 @@ rmdir /S /Q docs cd %SIGNINGPATH% rem sign using SHA-1 -signtool sign /v /a /n IDRIX /i Thawte /ac Thawt_CodeSigning_CA.crt /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt Setup 1.22-BETA2-Build5.exe" +signtool sign /v /a /n IDRIX /i Thawte /ac Thawt_CodeSigning_CA.crt /fd sha1 /t http://timestamp.verisign.com/scripts/timestamp.dll "..\Release\Setup Files\VeraCrypt Setup %VC_VERSION%.exe" "..\Release\Setup Files\VeraCrypt Portable %VC_VERSION%.exe" rem sign using SHA-256 -signtool sign /v /a /n "IDRIX SARL" /i GlobalSign /ac GlobalSign_SHA256_EV_CodeSigning_CA.cer /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\VeraCrypt Setup 1.22-BETA2-Build5.exe" +signtool sign /v /a /n "IDRIX SARL" /i GlobalSign /ac GlobalSign_SHA256_EV_CodeSigning_CA.cer /as /fd sha256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 "..\Release\Setup Files\VeraCrypt Setup %VC_VERSION%.exe" "..\Release\Setup Files\VeraCrypt Portable %VC_VERSION%.exe" pause diff --git a/src/VeraCrypt.sln b/src/VeraCrypt.sln index cc0387ed..6c6a54e0 100644 --- a/src/VeraCrypt.sln +++ b/src/VeraCrypt.sln @@ -28,6 +28,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExpandVolume", "ExpandVolum EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Zip", "Common\Zip.vcxproj", "{6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Portable", "Setup\Portable.vcxproj", "{60698D56-DB83-4D19-9C87-9DFB6A6F8C87}" + ProjectSection(ProjectDependencies) = postProject + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} = {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution All Debug|Win32 = All Debug|Win32 @@ -60,6 +65,10 @@ Global Mount Debug|x64 = Mount Debug|x64 Mount|Win32 = Mount|Win32 Mount|x64 = Mount|x64 + Portable Debug|Win32 = Portable Debug|Win32 + Portable Debug|x64 = Portable Debug|x64 + Portable|Win32 = Portable|Win32 + Portable|x64 = Portable|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 Setup Debug|Win32 = Setup Debug|Win32 @@ -120,6 +129,12 @@ Global {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|Win32.Build.0 = Release|Win32 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|x64.ActiveCfg = Release|x64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Mount|x64.Build.0 = Release|x64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Portable Debug|x64.ActiveCfg = Debug|x64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Portable Debug|x64.Build.0 = Debug|x64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Portable|Win32.ActiveCfg = Release|Win32 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Portable|x64.ActiveCfg = Release|x64 + {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Portable|x64.Build.0 = Release|x64 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.ActiveCfg = Release|Win32 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|Win32.Build.0 = Release|Win32 {993245CF-6B70-47EE-91BB-39F8FC6DC0E7}.Release|x64.ActiveCfg = Release|x64 @@ -169,6 +184,10 @@ Global {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount Debug|x64.ActiveCfg = Debug|Win32 {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount|Win32.ActiveCfg = Release|Win32 {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Mount|x64.ActiveCfg = Debug x64|Win32 + {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Portable Debug|x64.ActiveCfg = Debug|Win32 + {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Portable|Win32.ActiveCfg = Release|Win32 + {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Portable|x64.ActiveCfg = Debug x64|Win32 {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|Win32.ActiveCfg = Release|Win32 {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|Win32.Build.0 = Release|Win32 {EF5EF444-18D0-40D7-8DFA-775EC4448602}.Release|x64.ActiveCfg = Release|Win32 @@ -226,6 +245,12 @@ Global {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|Win32.ActiveCfg = Release|Win32 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|x64.ActiveCfg = Release|x64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Mount|x64.Build.0 = Release|x64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Portable Debug|x64.ActiveCfg = Debug|x64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Portable Debug|x64.Build.0 = Debug|x64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Portable|Win32.ActiveCfg = Release|Win32 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Portable|x64.ActiveCfg = Release|x64 + {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Portable|x64.Build.0 = Release|x64 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.ActiveCfg = Release|Win32 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|Win32.Build.0 = Release|Win32 {9DC1ABE2-D18B-48FB-81D2-8C50ADC57BCF}.Release|x64.ActiveCfg = Release|x64 @@ -286,6 +311,12 @@ Global {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|Win32.Build.0 = Release|Win32 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|x64.ActiveCfg = Release|x64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Mount|x64.Build.0 = Release|x64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Portable Debug|x64.ActiveCfg = Debug|x64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Portable Debug|x64.Build.0 = Debug|x64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Portable|Win32.ActiveCfg = Release|Win32 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Portable|x64.ActiveCfg = Release|x64 + {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Portable|x64.Build.0 = Release|x64 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.ActiveCfg = Release|Win32 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|Win32.Build.0 = Release|Win32 {E4C40F94-E7F9-4981-86E4-186B46F993F3}.Release|x64.ActiveCfg = Release|x64 @@ -329,6 +360,12 @@ Global {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount Debug|x64.ActiveCfg = Debug|Win32 {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|Win32.ActiveCfg = Release|Win32 {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Mount|x64.ActiveCfg = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable Debug|Win32.Build.0 = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable Debug|x64.ActiveCfg = Debug|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable|Win32.ActiveCfg = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable|Win32.Build.0 = Release|Win32 + {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Portable|x64.ActiveCfg = Release|Win32 {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.ActiveCfg = Release|Win32 {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|Win32.Build.0 = Release|Win32 {DF5F654D-BD44-4E31-B92E-B68074DC37A8}.Release|x64.ActiveCfg = Release|Win32 @@ -373,6 +410,10 @@ Global {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount Debug|x64.ActiveCfg = Release Loader|Win32 {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount|Win32.ActiveCfg = Release|Win32 {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Mount|x64.ActiveCfg = Release Loader|Win32 + {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Portable Debug|Win32.ActiveCfg = Release|Win32 + {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Portable Debug|x64.ActiveCfg = Release Loader|Win32 + {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Portable|Win32.ActiveCfg = Release|Win32 + {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Portable|x64.ActiveCfg = Release Loader|Win32 {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|Win32.ActiveCfg = Release|Win32 {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|Win32.Build.0 = Release|Win32 {8B7F059F-E4C7-4E11-88F5-EE8B8433072E}.Release|x64.ActiveCfg = Release|Win32 @@ -439,6 +480,13 @@ Global {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|Win32.Build.0 = Release|Win32 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|x64.ActiveCfg = Release|x64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Mount|x64.Build.0 = Release|x64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable Debug|Win32.Build.0 = Debug|Win32 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable Debug|x64.ActiveCfg = Debug|x64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable Debug|x64.Build.0 = Debug|x64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable|Win32.ActiveCfg = Release|Win32 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable|x64.ActiveCfg = Release|x64 + {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Portable|x64.Build.0 = Release|x64 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.ActiveCfg = Release|Win32 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|Win32.Build.0 = Release|Win32 {9715FF1D-599B-4BBC-AD96-BEF6E08FF827}.Release|x64.ActiveCfg = Release|x64 @@ -497,6 +545,12 @@ Global {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Mount|Win32.ActiveCfg = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Mount|Win32.Build.0 = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Mount|x64.ActiveCfg = Release|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Portable Debug|Win32.Build.0 = Debug|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Portable Debug|x64.ActiveCfg = Debug|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Portable|Win32.ActiveCfg = Release|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Portable|Win32.Build.0 = Release|Win32 + {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Portable|x64.ActiveCfg = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|Win32.ActiveCfg = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|Win32.Build.0 = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Release|x64.ActiveCfg = Release|Win32 @@ -506,6 +560,66 @@ Global {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup|Win32.ActiveCfg = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup|Win32.Build.0 = Release|Win32 {6316EE71-0210-4CA4-BCC7-CFB7A3C090FC}.Setup|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.All|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot Loader|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot Loader|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot Loader|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Boot|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64 Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64 Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64 Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x64|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86 Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86 Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86 Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver x86|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Driver|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Format|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Mount|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Portable|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Release|x64.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup Debug|Win32.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup Debug|Win32.Build.0 = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup Debug|x64.ActiveCfg = Debug|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup|Win32.ActiveCfg = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup|Win32.Build.0 = Release|Win32 + {60698D56-DB83-4D19-9C87-9DFB6A6F8C87}.Setup|x64.ActiveCfg = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- cgit v1.2.3