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

📄 passphrase.c

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 C
字号:
/*____________________________________________________________________________
	Copyright (C) 2002 PGP Corporation
	All rights reserved.

	$Id: PassPhrase.c,v 1.8 2002/08/06 20:09:14 dallen Exp $
____________________________________________________________________________*/

#include <windows.h>
#include "PGPadmin.h"
#include "resource.h"

#include "PGPadminHelp.h"
#include "pgpClientLib.h"

static void sInitGUI(HWND hwndDlg, pgpConfigInfo *pConfig);

static DWORD aHelpIds[] = {
	IDC_ENFORCE_MINCHARS,	IDH_PGPADMIN_ENFORCE_MINCHARS,
	IDC_MINCHARS,			IDH_PGPADMIN_MINCHARS,
	IDC_ENFORCE_MINQUALITY,	IDH_PGPADMIN_ENFORCE_MINQUALITY,
	IDC_MINQUALITY,			IDH_PGPADMIN_MINQUALITY,
	IDC_PASSLABEL1,			-1,
	IDC_PASSLABEL2,			-1,
	IDC_QUALLABEL1,			-1,
	IDC_QUALLABEL2,			-1,
    0,0
};


BOOL CALLBACK PassPhraseDlgProc(HWND hwndDlg, 
								UINT uMsg, 
								WPARAM wParam, 
								LPARAM lParam)
{
	BOOL			bReturnCode = FALSE;
	pgpConfigInfo *	pConfig		= NULL;

	g_hCurrentDlgWnd = hwndDlg;
	pConfig = (pgpConfigInfo *) GetWindowLong(hwndDlg, GWL_USERDATA);

	switch(uMsg)
	{
	case WM_INITDIALOG:
		CommonDlgProc(hwndDlg, uMsg, wParam, lParam);
		pConfig = (pgpConfigInfo *) GetWindowLong(hwndDlg, GWL_USERDATA);
		sInitGUI(hwndDlg, pConfig);
		break;

	case WM_HELP:
	case WM_CONTEXTMENU:
		return PGPclHtmlHelp (hwndDlg, uMsg, wParam, lParam, 
				(char *) kPGPclAdminHelpFile, aHelpIds);

	case WM_NOTIFY:
		{
			LPNMHDR pnmh;

			pnmh = (LPNMHDR) lParam;
			switch(pnmh->code)
			{
			case PSN_HELP:
				PGPclHtmlHelp (hwndDlg, kPGPclHelpContext, 0, 0, 
						(char *) kPGPclAdminHelpFile, 
						(DWORD *) IDH_PGPADMIN_PASSPHRASEDIALOG);
				break;

			case PSN_KILLACTIVE:
				{
					char szErrorMsg[255];
					char szTitle[255];
					BOOL bError = FALSE;
					HWND hwndCtrl;

					bReturnCode = TRUE;
					LoadString(g_hInstance, IDS_TITLE, szTitle, 254);

					// Check data validity

					if (pConfig->bEnforceMinChars)
					{
						if ((pConfig->nMinChars < 5) || 
							(pConfig->nMinChars > 128))
						{
							LoadString(g_hInstance, IDS_E_MINCHARSRANGE,
								szErrorMsg, 254);
							hwndCtrl = GetDlgItem(hwndDlg, IDC_MINCHARS);
							bError = TRUE;
						}
					}

					if (pConfig->bEnforceMinQuality && !bError)
					{
						if ((pConfig->nMinQuality < 20) ||
							(pConfig->nMinQuality > 100))
						{
							LoadString(g_hInstance, IDS_E_MINQUALRANGE,
								szErrorMsg, 254);
							hwndCtrl = GetDlgItem(hwndDlg, IDC_MINQUALITY);
							bError = TRUE;
						}
					}

					if (bError)
					{
						MessageBox(hwndDlg, szErrorMsg, szTitle, MB_OK);
						SetFocus(hwndCtrl);
						SetWindowLong(hwndDlg, DWL_MSGRESULT, -1);
					}
					break;
				}

			default:
				bReturnCode = CommonDlgProc(hwndDlg, uMsg, wParam, lParam);
				break;
			}
			
			break;
		}

	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case IDC_ENFORCE_MINCHARS:
			{
				if (IsDlgButtonChecked(hwndDlg, IDC_ENFORCE_MINCHARS) == 
					BST_CHECKED)
				{
					pConfig->bEnforceMinChars = TRUE;
				}
				else
				{
					pConfig->bEnforceMinChars = FALSE;
				}

				sInitGUI(hwndDlg, pConfig);
				bReturnCode = TRUE;
				PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
				break;
			}

		case IDC_ENFORCE_MINQUALITY:
			{
				if (IsDlgButtonChecked(hwndDlg, IDC_ENFORCE_MINQUALITY) == 
					BST_CHECKED)
				{
					pConfig->bEnforceMinQuality = TRUE;
				}
				else
				{
					pConfig->bEnforceMinQuality = FALSE;
				}

				sInitGUI(hwndDlg, pConfig);
				bReturnCode = TRUE;
				PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
				break;
			}

		case IDC_MINCHARS:
			{
				char szMinChars[10];

				GetWindowText(GetDlgItem(hwndDlg, IDC_MINCHARS), 
					szMinChars, 10);
				pConfig->nMinChars = atoi(szMinChars);
				bReturnCode = TRUE;
				PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
				break;
			}

		case IDC_MINQUALITY:
			{
				char szMinQuality[10];

				GetWindowText(GetDlgItem(hwndDlg, IDC_MINQUALITY), 
					szMinQuality, 10);
				pConfig->nMinQuality = atoi(szMinQuality);
				bReturnCode = TRUE;
				PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
				break;
			}
		}

		break;

	default:
		bReturnCode = CommonDlgProc(hwndDlg, uMsg, wParam, lParam);
		break;
	}

	return(bReturnCode);
}


static void sInitGUI(HWND hwndDlg, pgpConfigInfo *pConfig)
{
	char szMinChars[10];
	char szMinQuality[10];

	if (pConfig->bEnforceMinChars)
		CheckDlgButton(hwndDlg, IDC_ENFORCE_MINCHARS, BST_CHECKED);
	else
		CheckDlgButton(hwndDlg, IDC_ENFORCE_MINCHARS, BST_UNCHECKED);

	EnableWindow(GetDlgItem(hwndDlg, IDC_PASSLABEL1), 
		pConfig->bEnforceMinChars); 
	EnableWindow(GetDlgItem(hwndDlg, IDC_PASSLABEL2), 
		pConfig->bEnforceMinChars); 
	EnableWindow(GetDlgItem(hwndDlg, IDC_MINCHARS), 
		pConfig->bEnforceMinChars); 
	
	if (pConfig->bEnforceMinQuality)
		CheckDlgButton(hwndDlg, IDC_ENFORCE_MINQUALITY, BST_CHECKED);
	else
		CheckDlgButton(hwndDlg, IDC_ENFORCE_MINQUALITY, BST_UNCHECKED);
	
	EnableWindow(GetDlgItem(hwndDlg, IDC_QUALLABEL1), 
		pConfig->bEnforceMinQuality); 
	EnableWindow(GetDlgItem(hwndDlg, IDC_QUALLABEL2), 
		pConfig->bEnforceMinQuality); 
	EnableWindow(GetDlgItem(hwndDlg, IDC_MINQUALITY), 
		pConfig->bEnforceMinQuality); 

	wsprintf(szMinChars, "%d", pConfig->nMinChars);
	SetWindowText(GetDlgItem(hwndDlg, IDC_MINCHARS), szMinChars);
	
	wsprintf(szMinQuality, "%d", pConfig->nMinQuality);
	SetWindowText(GetDlgItem(hwndDlg, IDC_MINQUALITY), szMinQuality);

	return;
}


/*__Editor_settings____

	Local Variables:
	tab-width: 4
	End:
	vi: ts=4 sw=4
	vim: si
_____________________*/

⌨️ 快捷键说明

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