⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgchpasskeyfilewizard.c

📁 文件驱动加密,功能强大,可产生加密分区,支持AES,MD2,MD4,MD5MD2, MD4, MD5, RIPEMD-128, RIPEMD-160, SHA-1, SHA-224, SHA-256,
💻 C
📖 第 1 页 / 共 5 页
字号:
                      );

        if (G_dlgChpassKeyfileWizard_DlgMode == DLGMODE_NEWKEYFILE)
            {
            SetDlgItemString(
                             G_hInstance,
                             hDestDetailsWndPassword,
                             IDC_STATIC_INSTRUCTION,
                             IDS_STRING_INSTWIZNEWKEYFILE_DESTPASSWORD
                            );
            }
        else
            {
            SetDlgItemString(
                             G_hInstance,
                             hDestDetailsWndPassword,
                             IDC_STATIC_INSTRUCTION,
                             IDS_STRING_INSTWIZCHPASS_DESTPASSWORD
                            );
            }


        // Advanced...
        SetDlgItemInt(
                      hDestDetailsWndAdvanced, 
                      IDC_EDIT_OFFSET, 
                      DEFAULT_OFFSET,
                      TRUE
                     );
        SetControlReadonly(
                          hDestDetailsWndAdvanced,
                          IDC_EDIT_OFFSET,
                          TRUE
                         );
        CheckDlgButton(
                       hDestDetailsWndAdvanced,    
                       IDC_CHECK_CDBATOFFSET,
                       BST_CHECKED
                      );
        SetControlEnabled(
                          hDestDetailsWndAdvanced,
                          IDC_CHECK_CDBATOFFSET,
                          FALSE
                         );
        SetDlgItemInt(
                      hDestDetailsWndAdvanced,
                      IDC_EDIT_SALTLENGTH,
                      DEFAULT_SALTLENGTH,
                      TRUE
                     );
        SetDlgItemInt(
                      hDestDetailsWndAdvanced,
                      IDC_EDIT_KEYITERATIONS,
                      DEFAULT_KEYITERATIONS,
                      TRUE
                     );

        }
    else if (_dlgChpassKeyfileWizard_GetPageIdxOfPage(hDlg) == PAGE_IDX_RNGSELECT)
        {
        if (G_dlgChpassKeyfileWizard_DlgMode == DLGMODE_NEWKEYFILE)
            {
            SetDlgItemString(
                             G_hInstance,
                             hDlg,
                             IDC_STATIC_INSTRUCTION,
                             IDS_STRING_INSTWIZNEWKEYFILE_RNGSELECT
                            );
            }
        else
            {
            SetDlgItemString(
                             G_hInstance,
                             hDlg,
                             IDC_STATIC_INSTRUCTION,
                             IDS_STRING_INSTWIZCHPASS_RNGSELECT
                            );
            }

        }
    else if (_dlgChpassKeyfileWizard_GetPageIdxOfPage(hDlg) == PAGE_IDX_RNGMOUSEMOVEMENT)
        {
        G_dlgChpassKeyfileWizard_UserRNG = CreateWindow(
                              USERRNG_CONTROL,      // Class name
                              USERRNG_CONTROL,      // Window title       
                              (WS_VISIBLE | WS_BORDER),     // Style
                              CW_USEDEFAULT,  // X
                              CW_USEDEFAULT,  // Y
                              CW_USEDEFAULT,  // Width
                              CW_USEDEFAULT,  // Height
                              hDlg,           // Parent window
                              (HMENU)IDCTRL_USERRNG, // Menu/CtrlID
                              G_hInstance, 
                              NULL
                             );

        if (G_dlgChpassKeyfileWizard_UserRNG == NULL)      
            {
            MsgError(hDlg, TEXT("Unable to create user RNG"));
            }
        else
            {
            _dlgChpassKeyfileWizard_ResizeUserRNG(hDlg, TRUE);
            }

        SetDlgItemInt(
                      hDlg,
                      IDC_STATIC_USERRNG_STORED,
                      G_dlgChpassKeyfileWizard_ChpassKeyfileParams.RandomPoolFilled_UserInput,
                      TRUE
                     );
        SetDlgItemInt(
                      hDlg,
                      IDC_STATIC_USERRNG_REQUIRED,
                      (sizeof(G_dlgChpassKeyfileWizard_ChpassKeyfileParams.RandomPool_UserInput) * 8),
                      TRUE
                     );

        SetDlgItemString(
                         G_hInstance,
                         hDlg,
                         IDC_STATIC_INSTRUCTION,
                         IDS_STRING_INSTR_RNGMOUSEMOVEMENT
                        );
        }

    SizeControlMaxWidthBorder(
                              hDlg,
                              IDC_STATIC_INSTRUCTION,
                              FREEOTFE_DLG_BORDER
                             );
    SizeControlMaxDepth(hDlg, IDC_STATIC_INSTRUCTION);

    _dlgChpassKeyfileWizard_EnableDisableControls(hDlg);

    // Set menu buttons as on the first page
    _dlgChpassKeyfileWizard_SetWizardButtons(0);

    DEBUGOUTGUI(DEBUGLEV_EXIT, (TEXT("dlgChpassKeyfileWizard_HandleMsg_WM_INITDIALOG\n")));
    return TRUE;
}


// =========================================================================
BOOL CALLBACK dlgChpassKeyfileWizard_HandleMsg_WM_DESTROY(HWND hWnd)
{
    DEBUGOUTGUI(DEBUGLEV_ENTER, (TEXT("dlgChpassKeyfileWizard_HandleMsg_WM_DESTROY\n")));

    if (G_dlgChpassKeyfileWizard_MenuBar != NULL)
        {
        DestroyWindow(G_dlgChpassKeyfileWizard_MenuBar);
        G_dlgChpassKeyfileWizard_MenuBar = NULL;
        }

    if (G_dlgChpassKeyfileWizard_UserRNG != NULL)
        {
        DestroyWindow(G_dlgChpassKeyfileWizard_UserRNG);
        G_dlgChpassKeyfileWizard_UserRNG = NULL;
        }

    if (hSrcDetailsWndPassword != NULL)
        {
        DestroyWindow(hSrcDetailsWndPassword);
        hSrcDetailsWndPassword = NULL;
        }
    if (hSrcDetailsWndAdvanced != NULL)
        {
        DestroyWindow(hSrcDetailsWndAdvanced);
        hSrcDetailsWndAdvanced = NULL;
        }
    if (hDestDetailsWndPassword != NULL)
        {
        DestroyWindow(hDestDetailsWndPassword);
        hDestDetailsWndPassword = NULL;
        }
    if (hDestDetailsWndAdvanced != NULL)
        {
        DestroyWindow(hDestDetailsWndAdvanced);
        hDestDetailsWndAdvanced = NULL;
        }

    G_dlgChpassKeyfileWizard_AllowFinish = FALSE;

    DEBUGOUTGUI(DEBUGLEV_EXIT, (TEXT("dlgChpassKeyfileWizard_HandleMsg_WM_DESTROY\n")));
    return TRUE;
}


// =========================================================================
// hTabWnd - The tab window
// hWnd - The window to be displayed on the tab
void _dlgChpassKeyfileWizard_SizeWindowTab(
    HWND hTabWnd,
    HWND hWnd
)
{
    RECT rcTab;
    RECT rcAdjust;

    if (GetWindowRect(hTabWnd, &rcTab))
        {
        rcAdjust = rcTab;
        TabCtrl_AdjustRect(hTabWnd, FALSE, &rcAdjust);
        rcTab.bottom = rcAdjust.bottom;

        DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("Window: 0x%0.8x\n"), hWnd));
        DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("  left  : %.3d\n"), rcTab.left));
        DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("  top   : %.3d\n"), rcTab.top));
        DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("  right : %.3d\n"), rcTab.right));
        DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("  bottom: %.3d\n"), rcTab.bottom));

        SetWindowPos(
                     hWnd, 
                     NULL, 
                     rcTab.left, 
                     rcTab.top, 
                     (rcTab.right - rcTab.left),
                     (rcTab.bottom - rcTab.top), 
                     SWP_NOZORDER
                    );
        }

}


// =========================================================================
void _dlgChpassKeyfileWizard_SizeWindowTab_CtrlID(
    HWND hTabParentWnd,
    int tabCtrlID,
    HWND hWnd
)
{
    HWND tmpHWND;

    if (
        (hTabParentWnd != NULL) &&
        (hWnd != NULL)
       )
        {
        tmpHWND = GetDlgItem(hTabParentWnd, tabCtrlID);
        if (tmpHWND != NULL)
            {
            _dlgChpassKeyfileWizard_SizeWindowTab(tmpHWND, hWnd);
            }
        }
}


// =========================================================================
// Resize the property sheet page so that the tabs at the top are
// hidden by it; we don't want them shown for our wizard
BOOL CALLBACK dlgChpassKeyfileWizard_HandleMsg_WM_SIZE(HWND hDlg)
{
    RECT rcParent;
#if DBG
    // Nothing; tab header displayed under debug
#else
    RECT rcClient;
#endif
    static BOOL resizing = FALSE;

    DEBUGOUTGUI(DEBUGLEV_ENTER, (TEXT("dlgChpassKeyfileWizard_HandleMsg_WM_SIZE\n")));

    if (
        (hDlg == hSrcDetailsWndPassword)  ||
        (hDlg == hSrcDetailsWndAdvanced)  ||
        (hDlg == hDestDetailsWndPassword) ||
        (hDlg == hDestDetailsWndAdvanced)
       )
        {
        // Do nothing; handed when the parent window (tabbed window) is
        // resized
        return TRUE;
        }

    // Prevent infinite recursion as we resize the dialog...
    if (!(resizing))
        {
        resizing = TRUE;

#if DBG
        // Nothing; tab header displayed under debug
#else
        // Get size of display area...
        GetClientRect(GetParent(hDlg), &rcClient);

        // Resize...
        SetWindowPos(
                     hDlg, 
                     NULL, 
                     0, 
                     0, 
                     rcClient.right,
                     rcClient.bottom,
                     SWP_NOZORDER
                    );
#endif

        // Resize specific property sheets...
        GetClientRect(hDlg, &rcParent);

        switch (_dlgChpassKeyfileWizard_GetPageIdxOfPage(hDlg))
            {
            case PAGE_IDX_WELCOME:
                {
                SizeControlMaxWidthBorder(
                                          hDlg, 
                                          IDC_STATIC_WELCOME_TITLE, 
                                          FREEOTFE_DLG_BORDER
                                         );
                SizeControlMaxWidthBorder(
                                          hDlg, 
                                          IDC_STATIC_WELCOME_DESC, 
                                          FREEOTFE_DLG_BORDER
                                         );
                SizeControlMaxWidthBorder(
                                          hDlg, 
                                          IDC_STATIC_WELCOME_NEXT, 
                                          FREEOTFE_DLG_BORDER
                                         );

                break;
                }

            case PAGE_IDX_SRCDETAILS:
                {
                // Resize src tab window...
                SizeControlToParent(hDlg, IDC_TAB1);

                // Resize the tabsheets within the src tab window...
                _dlgChpassKeyfileWizard_SizeWindowTab_CtrlID(
                                                             hDlg, 
                                                             IDC_TAB1, 
                                                             hSrcDetailsWndPassword
                                                            );
                _dlgChpassKeyfileWizard_SizeWindowTab_CtrlID(
                                                             hDlg, 
                                                             IDC_TAB1, 
                                                             hSrcDetailsWndAdvanced
                                                            );
                break;
                }

            case PAGE_IDX_DESTDETAILS:
                {
                // Resize dest tab window...
                SizeControlToParent(hDlg, IDC_TAB1);

                // Resize the tabsheets within the dest tab window...
                _dlgChpassKeyfileWizard_SizeWindowTab_CtrlID(
                                                             hDlg, 
                                                             IDC_TAB1, 
                                                             hDestDetailsWndPassword
                                                            );
                _dlgChpassKeyfileWizard_SizeWindowTab_CtrlID(
                                                             hDlg, 
                                                             IDC_TAB1, 
                                                             hDestDetailsWndAdvanced
                                                            );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -