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

📄 dlgoptions.c

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

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

	retval = TRUE;

    if (retval)
        {
        retval = ValidateMountpoint(hDlg, Opts->MntPntDefault, TRUE, FALSE);
        }

    DEBUGOUTGUI(DEBUGLEV_EXIT, (TEXT("dlgOptions_ValidateInput\n")));
	return retval;
}


// =========================================================================
// Returns: TRUE if the file extension has an association, otherwise FALSE
BOOL
_dlgOptions_CheckFileAssociationPresent()
{
    BOOL retval;

    retval = RegIsFileExtensionAssociated(NULL, VOL_FILE_TYPE);

    return retval;
}


// =========================================================================
void
_dlgOptions_FileAssociation(HWND hDlg)
{
    WCHAR tmpFilename[FREEOTFE_MAX_FILENAME_LENGTH];
    WCHAR tmpOpenCommand[FREEOTFE_MAX_FILENAME_LENGTH];
    BOOL associateSelected;
    
    // Do nothing with the file extension, unless the user's changed the
    // setting

    associateSelected = (IsDlgButtonChecked(
                           hDlg,
                           IDC_CHECK_ASSOCIATE
                          ) == BST_CHECKED);

    if (associateSelected != G_dlgOptions_FileExtnAssociated)
        {
        if (associateSelected)
            {
            if (GetModuleFileName(
                                  NULL, 
                                  tmpFilename, 
                                  sizeof(tmpFilename)
                                 ) != 0)
                {
                _snwprintf(
                           tmpOpenCommand, 
                           (sizeof(tmpOpenCommand) / sizeof(tmpOpenCommand[0])),
                           FILE_ASSOC_OPEN,
                           tmpFilename
                          );

                RegAssociateFileExtension(
                                          VOL_FILE_EXTN,
                                          VOL_FILE_TYPE,
                                          VOL_FILE_DESC,
                                          tmpOpenCommand,
                                          tmpFilename,
                                          IDI_ICON_MAIN
                                         );
                }
            }
        else
            {
            RegDisassociateFileExtension(
                                         VOL_FILE_EXTN,
                                         VOL_FILE_TYPE
                                        );
            }
        }

}


// =========================================================================
BOOL CALLBACK dlgOptions_HandleMsg_WM_COMMAND(HWND hDlg, WPARAM wParam)
{
    BOOL retval = FALSE;
	int ctrlID;

    DEBUGOUTGUI(DEBUGLEV_ENTER, (TEXT("dlgOptions_HandleMsg_WM_COMMAND\n")));
    DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("Command: %d\n"), LOWORD(wParam)));

    ctrlID = LOWORD(wParam);

    switch(ctrlID)
        {
        case IDOK:
			{
            BOOL allOK;
            OPTIONS* newOptions;

            allOK = TRUE;

            if (allOK)
                {
                newOptions = OptionsCopy(G_Options);
                allOK = (newOptions != NULL);
                }

            if (allOK)
                {
                allOK = dlgOptions_GetUserInput(hDlg, newOptions);
                }

            if (allOK)
                {
			    allOK = dlgOptions_ValidateUserInput(hDlg, newOptions);
                }

            if (allOK)
                {
                OptionsFree(G_Options);
                G_Options = newOptions;

                if (!(OptionsWrite(G_Options)))
				    {
				    MsgError(hDlg, TEXT("Options could not be saved."));
				    }

			    }
            else
                {
                OptionsFree(newOptions);
                }

            // Sort out file associations...
            _dlgOptions_FileAssociation(hDlg);

            if (allOK)
                {
                EndDialog(hDlg, TRUE);
                }

            retval = TRUE;
            break;
            }

        case IDCANCEL:
            {
            EndDialog(hDlg, TRUE);
            retval = TRUE;
            break;
            }

        case IDC_BUTTON_BROWSEEXPLORER:
            {
            OPENFILENAME ofn;
            DWORD flags;
            WCHAR filename[FREEOTFE_MAX_FILENAME_LENGTH];
			BOOL fileDlgOK;

            DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("Browse...\n")));

            memset(filename, 0, sizeof(filename));

            ofn.lStructSize       = sizeof(ofn);
            ofn.hwndOwner         = hDlg;
            ofn.hInstance         = NULL;
            ofn.lpstrCustomFilter = NULL;
            ofn.lpstrFile         = filename;
            ofn.nMaxFile          = (sizeof(filename) / sizeof(filename[0]));
            ofn.lpstrFileTitle    = NULL;
            ofn.nMaxFileTitle     = 0;
            ofn.lpstrInitialDir   = NULL;
            ofn.lpstrTitle        = NULL;
            flags = (
                     // OFN_HIDEREADONLY |
                     OFN_FILEMUSTEXIST | 
                     OFN_PATHMUSTEXIST
                    );
            ofn.Flags             = flags;
            ofn.nFileOffset       = 0;
            ofn.nFileExtension    = 0;
            ofn.lpstrDefExt       = NULL;
            ofn.lCustData         = 0;
            ofn.lpfnHook          = NULL;
            ofn.lpTemplateName    = NULL;

            ofn.lpstrFilter       = FILE_FILTER_FLT_EXECUTABLES;
            ofn.nMaxCustFilter    = FILE_FILTER_CNT_EXECUTABLES;
            ofn.nFilterIndex      = FILE_FILTER_DFLT_EXECUTABLES;

    		fileDlgOK = GetOpenFileName(&ofn);

			if (fileDlgOK)
                {
                DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("Open file dialog OK'd...\n")));
                DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("Filename: %ls\n"), filename));
                SetDlgItemText(hDlg, IDC_EDIT_EXPLORER, filename);
                }
            else
                {
                DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("Open file dialog cancelled\n")));
                }

            break;
            }

        case IDC_RADIO_MNTPNT_VOL:
        case IDC_RADIO_MNTPNT_DEFAULT:
            {
            _dlgOptions_EnableDisableControls(hDlg);
            break;
            }

        }

    DEBUGOUTGUI(DEBUGLEV_EXIT, (TEXT("dlgOptions_HandleMsg_WM_COMMAND\n")));
    return retval;
}


// =========================================================================
BOOL CALLBACK dlgOptions_Proc(
                           HWND hDlg, 
                           UINT msg, 
                           WPARAM wParam, 
                           LPARAM lParam
                          )
{
    BOOL retval = FALSE;

    switch(msg)
        {
        case WM_INITDIALOG:
            {
            retval = dlgOptions_HandleMsg_WM_INITDIALOG(hDlg);
            break;
            }

        case WM_CLOSE:
            {
            DEBUGOUTGUI(DEBUGLEV_INFO, (TEXT("MSG: WM_CLOSE\n")));
            retval = dlgOptions_HandleMsg_WM_CLOSE(hDlg);
            break;
            }

        case WM_COMMAND:
            {
            retval = dlgOptions_HandleMsg_WM_COMMAND(hDlg, wParam);
            break;
            }

        }

    return retval;
}


// =========================================================================
// =========================================================================

⌨️ 快捷键说明

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