📄 dlgnewvolwizard.c
字号:
void _dlgNewVolWizard_SetWizardButtons(int PageIdx)
{
MenuButtonEnable(
G_dlgNewVolWizard_MenuBar,
ID_WIZ_BACK,
(PageIdx > 0)
);
MenuButtonEnable(
G_dlgNewVolWizard_MenuBar,
ID_WIZ_NEXT,
(PageIdx < _dlgNewVolWizard_GetPageIdxOfLastPage())
);
MenuButtonEnable(
G_dlgNewVolWizard_MenuBar,
IDOK,
G_dlgNewVolWizard_AllowFinish
);
}
// =========================================================================
BOOL _dlgNewVolWizard_IsHidden()
{
BOOL retval;
retval = CheckFileExists(G_dlgNewVolWizard_NewVolParams.Filename);
return retval;
}
// =========================================================================
void _dlgNewVolWizard_WriteSummary(HWND hWnd)
{
WCHAR strLARGE_INTEGER[25]; // Must be large enough to store 2^64
// as a string
LARGE_INTEGER totalSize;
LARGE_INTEGER tmpLargeInt;
WCHAR strPrettySectorIVGenMethod[MAX_PRETTYPRINTED_SECTORIVGENMETHOD];
WCHAR* tmpGUIDStr;
BOOL firstInList;
SetDlgItemText(hWnd, IDC_EDIT_SUMMARY, TEXT(""));
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Your new volume will be created with the following properties:")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Filename: ")
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
G_dlgNewVolWizard_NewVolParams.Filename
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
if (_dlgNewVolWizard_IsHidden())
{
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Hidden volume starting at offset: ")
);
_ultow(
G_dlgNewVolWizard_NewVolParams.Offset.LowPart,
strLARGE_INTEGER,
10
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
strLARGE_INTEGER
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
}
if (!(G_dlgNewVolWizard_NewVolParams.UseKeyfile))
{
tmpLargeInt.QuadPart = (CRITICAL_DATA_LENGTH / 8);
totalSize.QuadPart = G_dlgNewVolWizard_NewVolParams.Size.QuadPart +
tmpLargeInt.QuadPart;
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Volume size: ")
);
_ultow(
G_dlgNewVolWizard_NewVolParams.Size.LowPart,
strLARGE_INTEGER,
10
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
strLARGE_INTEGER
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT(" + ")
);
_ultow(
tmpLargeInt.LowPart,
strLARGE_INTEGER,
10
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
strLARGE_INTEGER
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT(" (for CDB) = ")
);
_ultow(
totalSize.LowPart,
strLARGE_INTEGER,
10
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
strLARGE_INTEGER
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT(" bytes")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("CDB stored: At start of volume file")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
}
else
{
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Volume size: ")
);
_ultow(
G_dlgNewVolWizard_NewVolParams.Size.LowPart,
strLARGE_INTEGER,
10
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
strLARGE_INTEGER
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT(" bytes")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("CDB stored: In separate keyfile")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("CDB keyfile: ")
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
G_dlgNewVolWizard_NewVolParams.Keyfile
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
}
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Hash algorithm: ")
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
G_dlgNewVolWizard_NewVolParams.PrettyNameHash
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT(" [Hash driver: ")
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
G_dlgNewVolWizard_NewVolParams.DriverHash
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("]")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT(" [Hash GUID: ")
);
GUIDToWCHAR(
&G_dlgNewVolWizard_NewVolParams.ImplGUIDHash,
&tmpGUIDStr
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
tmpGUIDStr
);
SecZeroAndFreeMemory(
tmpGUIDStr,
(wcslen(tmpGUIDStr) * sizeof(*tmpGUIDStr))
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("]")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Key iterations: ")
);
_ultow(
G_dlgNewVolWizard_NewVolParams.KeyIterations,
strLARGE_INTEGER,
10
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
strLARGE_INTEGER
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
if (G_dlgNewVolWizard_NewVolParams.BlockSizeSelectedCypher <= 0)
{
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Sector IVs will not be used (cypher has zero or variable blocksize)")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
}
else
{
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Cypher has fixed, defined blocksize; sector IVs will be used")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Sector IV generation method: ")
);
driver_PrettyprintSectorIVGenMethod(
G_dlgNewVolWizard_NewVolParams.SectorIVGenMethod,
strPrettySectorIVGenMethod,
sizeof(strPrettySectorIVGenMethod)
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
strPrettySectorIVGenMethod
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
if (G_dlgNewVolWizard_NewVolParams.XORIV)
{
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Sector IVs will be XORd with a per-volume IV before use")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
}
else
{
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("A per-volume IV will not be used")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
}
}
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("Cypher algorithm: ")
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
G_dlgNewVolWizard_NewVolParams.PrettyNameCypher
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT(" [Cypher driver: ")
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
G_dlgNewVolWizard_NewVolParams.DriverCypher
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT("]")
);
AppendStaticText(hWnd, IDC_EDIT_SUMMARY, EDIT_CRLF);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
TEXT(" [Cypher GUID: ")
);
GUIDToWCHAR(
&G_dlgNewVolWizard_NewVolParams.ImplGUIDHash,
&tmpGUIDStr
);
AppendStaticText(
hWnd,
IDC_EDIT_SUMMARY,
tmpGUIDStr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -