clprefsemail.c
来自「PGP8.0源码 请认真阅读您的文件包然后写出其具体功能」· C语言 代码 · 共 201 行
C
201 行
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
CLprefsEmail.c - handle PGP email preferences dialogs
$Id: CLprefsEmail.c,v 1.10 2002/08/06 20:09:19 dallen Exp $
____________________________________________________________________________*/
#include "pgpPFLConfig.h"
// project header files
#include "PGPclx.h"
#include "CLprefs.h"
// external globals
extern HINSTANCE g_hInst;
static DWORD aEmailIds[] = { // Help IDs
IDC_USEPGPMIME, IDH_PGPCLPREF_USEPGPMIME,
IDC_ENCRYPTBYDEFAULT, IDH_PGPCLPREF_ENCRYPTBYDEFAULT,
IDC_SIGNBYDEFAULT, IDH_PGPCLPREF_SIGNBYDEFAULT,
IDC_AUTODECRYPT, IDH_PGPCLPREF_AUTODECRYPT,
IDC_USESECUREVIEWER, IDH_PGPCLPREF_ALWAYSUSESECUREVIEWER,
IDC_WRAPENABLE, IDH_PGPCLPREF_WORDWRAPENABLE,
IDC_COLUMNTEXT, IDH_PGPCLPREF_WORDWRAPCOLUMN,
IDC_WRAPNUMBER, IDH_PGPCLPREF_WORDWRAPCOLUMN,
0,0
};
// _____________________________________________________
//
// Message processing function for property sheet dialog
LRESULT WINAPI
CLEmailPropDlgProc (
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
PPREFSDLGSTRUCT ppds;
switch (uMsg) {
case WM_INITDIALOG:
{
UINT u;
PGPBoolean b;
PGPPrefRef prefref;
SetWindowLong (hwnd, GWL_USERDATA, ((PROPSHEETPAGE*)lParam)->lParam);
ppds = (PPREFSDLGSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
if (ppds->bNeedsCentering)
{
PGPclCenterWindowOnMonitor (GetParent (hwnd), kPGPclWindowMonitor);
ppds->bNeedsCentering = FALSE;
}
prefref = CLGetPrefRef (ppds);
CLLoadCheckBoxPref (hwnd, IDC_USEPGPMIME,
ppds, prefref, kPGPPrefMailEncryptPGPMIME);
PGPGetPrefNumber (prefref, kPGPPrefWordWrapWidth, &u);
SetDlgItemInt (hwnd, IDC_WRAPNUMBER, u, FALSE);
if (CLDisablePrefControl (hwnd, IDC_WRAPNUMBER,
ppds, prefref, kPGPPrefWordWrapWidth))
{
EnableWindow (GetDlgItem (hwnd, IDC_COLUMNTEXT), FALSE);
}
b = CLLoadCheckBoxPref (hwnd, IDC_WRAPENABLE,
ppds, prefref, kPGPPrefWordWrapEnable);
if (!b)
{
EnableWindow (GetDlgItem (hwnd, IDC_WRAPNUMBER), FALSE);
EnableWindow (GetDlgItem (hwnd, IDC_COLUMNTEXT), FALSE);
}
CLLoadCheckBoxPref (hwnd, IDC_ENCRYPTBYDEFAULT,
ppds, prefref, kPGPPrefMailEncryptDefault);
CLLoadCheckBoxPref (hwnd, IDC_SIGNBYDEFAULT,
ppds, prefref, kPGPPrefMailSignDefault);
CLLoadCheckBoxPref (hwnd, IDC_AUTODECRYPT,
ppds, prefref, kPGPPrefAutoDecrypt);
CLLoadCheckBoxPref (hwnd, IDC_USESECUREVIEWER,
ppds, prefref, kPGPPrefAlwaysUseSecureViewer);
return TRUE;
}
case WM_HELP :
case WM_CONTEXTMENU :
return PGPclHtmlHelp (hwnd, uMsg, wParam, lParam,
(char*)kPGPclHelpFile, aEmailIds);
case WM_COMMAND :
switch (LOWORD (wParam)) {
case IDC_WRAPENABLE :
{
PGPBoolean b;
PGPPrefRef prefref;
ppds = (PPREFSDLGSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
prefref = CLGetPrefRef (ppds);
b = CLDisablePrefControl (hwnd, IDC_WRAPNUMBER,
ppds, prefref, kPGPPrefWordWrapWidth);
if (!b)
{
b = (IsDlgButtonChecked (hwnd, IDC_WRAPENABLE) == BST_CHECKED);
EnableWindow (GetDlgItem (hwnd, IDC_COLUMNTEXT), b);
EnableWindow (GetDlgItem (hwnd, IDC_WRAPNUMBER), b);
}
break;
}
}
break;
case WM_NOTIFY :
switch (((NMHDR FAR *) lParam)->code) {
case PSN_HELP :
PGPclHtmlHelp (hwnd, kPGPclHelpContext, 0, 0,
(char*)kPGPclHelpFile, (DWORD*)IDH_PGPCLPREF_EMAILDIALOG);
break;
case PSN_APPLY :
{
PGPBoolean b;
UINT u;
ppds = (PPREFSDLGSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
if (ppds->bUseClientLibPrefs &&
!PGPPrefRefIsValid (ppds->prefref))
{
PGPclPeekClientLibPrefRefs (&ppds->prefref, NULL);
}
b = CLSaveCheckBoxPref (hwnd, IDC_WRAPENABLE,
ppds->prefref, kPGPPrefWordWrapEnable);
if (b)
{
u = GetDlgItemInt (hwnd, IDC_WRAPNUMBER, NULL, FALSE);
PGPclErrorBox (hwnd, PGPSetPrefNumber (ppds->prefref,
kPGPPrefWordWrapWidth, u));
}
b = CLSaveCheckBoxPref (hwnd, IDC_USEPGPMIME,
ppds->prefref, kPGPPrefMailEncryptPGPMIME);
PGPclErrorBox (hwnd, PGPSetPrefBoolean (ppds->prefref,
kPGPPrefMailSignPGPMIME, b));
CLSaveCheckBoxPref (hwnd, IDC_ENCRYPTBYDEFAULT,
ppds->prefref, kPGPPrefMailEncryptDefault);
CLSaveCheckBoxPref (hwnd, IDC_SIGNBYDEFAULT,
ppds->prefref, kPGPPrefMailSignDefault);
CLSaveCheckBoxPref (hwnd, IDC_AUTODECRYPT,
ppds->prefref, kPGPPrefAutoDecrypt);
CLSaveCheckBoxPref (hwnd, IDC_USESECUREVIEWER,
ppds->prefref, kPGPPrefAlwaysUseSecureViewer);
ppds->bPrefsModified = TRUE;
ppds->returnErr = kPGPError_NoErr;
SetWindowLong (hwnd, DWL_MSGRESULT, PSNRET_NOERROR);
return TRUE;
}
case PSN_KILLACTIVE :
if (IsDlgButtonChecked (hwnd, IDC_WRAPENABLE) == BST_CHECKED)
{
if (GetDlgItemInt (hwnd, IDC_WRAPNUMBER, NULL, FALSE) == 0)
{
PGPclMessageBox (hwnd, IDS_CAPTIONINFO,
IDS_INVALIDWRAP, MB_OK|MB_ICONINFORMATION);
SendDlgItemMessage (hwnd, IDC_WRAPNUMBER, EM_SETSEL, 0, -1);
SetFocus (GetDlgItem (hwnd, IDC_WRAPNUMBER));
SetWindowLong (hwnd, DWL_MSGRESULT, TRUE);
return TRUE;
}
}
SetWindowLong (hwnd, DWL_MSGRESULT, FALSE);
return TRUE;
}
}
return FALSE;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?