📄 serverupdates.c
字号:
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: ServerUpdates.c,v 1.14 2002/11/01 20:45:12 wjb Exp $
____________________________________________________________________________*/
#include <windows.h>
#include "PGPadmin.h"
#include <commctrl.h>
#include "Utils.h"
#include "resource.h"
#include "PGPadminHelp.h"
#include "pgpClientLib.h"
static void sInitGUI(HWND hwndDlg, pgpConfigInfo *pConfig);
static DWORD aHelpIds[] = {
IDC_UPDATEPREFS, IDH_PGPADMIN_UPDATEPREFS,
IDC_PREFDAYS, IDH_PGPADMIN_PREFDAYS,
IDC_UPDATEALL, IDH_PGPADMIN_UPDATEALLKEYS,
IDC_ALLDAYS, IDH_PGPADMIN_KEYSDAYS,
IDC_UPDATETRUSTED, IDH_PGPADMIN_UPDATETRUSTED,
IDC_TRUSTEDDAYS, IDH_PGPADMIN_TRUSTEDDAYS,
IDC_LDAPSERVER, IDH_PGPADMIN_LDAPSERVER,
IDC_PREFSPIN, -1,
IDC_ALLSPIN, -1,
IDC_TRUSTEDSPIN, -1,
0,0
};
BOOL CALLBACK ServerUpdatesDlgProc(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);
SendMessage(GetDlgItem(hwndDlg, IDC_ALLSPIN), UDM_SETRANGE, 0,
MAKELONG(999, 1));
SendMessage(GetDlgItem(hwndDlg, IDC_TRUSTEDSPIN), UDM_SETRANGE, 0,
MAKELONG(999, 1));
SendMessage(GetDlgItem(hwndDlg, IDC_PREFSPIN), UDM_SETRANGE, 0,
MAKELONG(999, 1));
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_SERVERUPDATESDIALOG);
break;
case PSN_KILLACTIVE:
{
char szErrorMsg[255];
char szTitle[255];
BOOL bError = FALSE;
int nLength;
HWND hwndCtrl;
bReturnCode = TRUE;
LoadString(g_hInstance, IDS_TITLE, szTitle, 254);
// Check data validity
if (pConfig->bUpdateAdminPrefs)
{
if ((pConfig->nDaysUpdatePrefs < 1) ||
(pConfig->nDaysUpdatePrefs > 999))
{
LoadString(g_hInstance, IDS_E_DAYSRANGE,
szErrorMsg, 254);
hwndCtrl = GetDlgItem(hwndDlg, IDC_PREFDAYS);
bError = TRUE;
}
}
if (pConfig->bUpdateAllKeys)
{
if ((pConfig->nDaysUpdateAllKeys < 1) ||
(pConfig->nDaysUpdateAllKeys > 999))
{
LoadString(g_hInstance, IDS_E_DAYSRANGE,
szErrorMsg, 254);
hwndCtrl = GetDlgItem(hwndDlg, IDC_ALLDAYS);
bError = TRUE;
}
}
if (pConfig->bUpdateTrustedIntroducers)
{
if ((pConfig->nDaysUpdateTrustedIntroducers < 1) ||
(pConfig->nDaysUpdateTrustedIntroducers > 999))
{
LoadString(g_hInstance, IDS_E_DAYSRANGE,
szErrorMsg, 254);
hwndCtrl = GetDlgItem(hwndDlg, IDC_TRUSTEDDAYS);
bError = TRUE;
}
}
if (pConfig->szLDAPServer)
{
PGPFreeData(pConfig->szLDAPServer);
pConfig->szLDAPServer = NULL;
}
nLength = GetWindowTextLength(GetDlgItem(hwndDlg,
IDC_LDAPSERVER));
if (nLength)
{
pConfig->szLDAPServer = (char *)
PGPNewData(pConfig->memoryMgr,
nLength + 1,
kPGPMemoryMgrFlags_Clear);
GetWindowText(GetDlgItem(hwndDlg, IDC_LDAPSERVER),
pConfig->szLDAPServer, nLength + 1);
pConfig->szLDAPServer[nLength] = 0;
if (strlen(pConfig->szLDAPServer) <= strlen("ldap://"))
{
LoadString(g_hInstance, IDS_E_BADURL,
szErrorMsg, 254);
hwndCtrl = GetDlgItem(hwndDlg, IDC_LDAPSERVER);
bError = TRUE;
}
if (!strstr(pConfig->szLDAPServer, "ldap://") &&
!strstr(pConfig->szLDAPServer, "ldaps://"))
{
LoadString(g_hInstance, IDS_E_BADURL,
szErrorMsg, 254);
hwndCtrl = GetDlgItem(hwndDlg, IDC_LDAPSERVER);
bError = TRUE;
}
}
else if (pConfig->bUpdateAdminPrefs)
{
LoadString(g_hInstance, IDS_E_NEEDLDAP, szErrorMsg,
254);
hwndCtrl = GetDlgItem(hwndDlg, IDC_LDAPSERVER);
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:
if (pConfig == NULL)
break;
switch (LOWORD(wParam))
{
case IDC_UPDATEPREFS:
if (IsDlgButtonChecked(hwndDlg, IDC_UPDATEPREFS) == BST_CHECKED)
{
pConfig->bUpdateAdminPrefs = TRUE;
if (pConfig->nDaysUpdatePrefs == 0)
pConfig->nDaysUpdatePrefs = 1;
}
else
pConfig->bUpdateAdminPrefs = FALSE;
sInitGUI(hwndDlg, pConfig);
bReturnCode = TRUE;
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
case IDC_UPDATEALL:
if (IsDlgButtonChecked(hwndDlg, IDC_UPDATEALL) == BST_CHECKED)
{
pConfig->bUpdateAllKeys = TRUE;
if (pConfig->nDaysUpdateAllKeys == 0)
pConfig->nDaysUpdateAllKeys = 1;
}
else
pConfig->bUpdateAllKeys = FALSE;
sInitGUI(hwndDlg, pConfig);
bReturnCode = TRUE;
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
case IDC_UPDATETRUSTED:
if (IsDlgButtonChecked(hwndDlg, IDC_UPDATETRUSTED) == BST_CHECKED)
{
pConfig->bUpdateTrustedIntroducers = TRUE;
if (pConfig->nDaysUpdateTrustedIntroducers == 0)
pConfig->nDaysUpdateTrustedIntroducers = 1;
}
else
pConfig->bUpdateTrustedIntroducers = FALSE;
sInitGUI(hwndDlg, pConfig);
bReturnCode = TRUE;
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
case IDC_PREFDAYS:
{
char szBuffer[4];
GetWindowText(GetDlgItem(hwndDlg, IDC_PREFDAYS),
szBuffer, 4);
pConfig->nDaysUpdatePrefs = atoi(szBuffer);
bReturnCode = TRUE;
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
}
case IDC_ALLDAYS:
{
char szBuffer[4];
GetWindowText(GetDlgItem(hwndDlg, IDC_ALLDAYS),
szBuffer, 4);
pConfig->nDaysUpdateAllKeys = atoi(szBuffer);
bReturnCode = TRUE;
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
}
case IDC_TRUSTEDDAYS:
{
char szBuffer[4];
GetWindowText(GetDlgItem(hwndDlg, IDC_TRUSTEDDAYS),
szBuffer, 4);
pConfig->nDaysUpdateTrustedIntroducers = atoi(szBuffer);
bReturnCode = TRUE;
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
}
case IDC_LDAPSERVER:
{
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 szBuffer[4];
if (pConfig->bUpdateAdminPrefs)
CheckDlgButton(hwndDlg, IDC_UPDATEPREFS, BST_CHECKED);
else
CheckDlgButton(hwndDlg, IDC_UPDATEPREFS, BST_UNCHECKED);
EnableWindow(GetDlgItem(hwndDlg, IDC_PREFDAYS),
pConfig->bUpdateAdminPrefs);
EnableWindow(GetDlgItem(hwndDlg, IDC_LDAPLABEL),TRUE); // Always enable
// pConfig->bUpdateAdminPrefs);
EnableWindow(GetDlgItem(hwndDlg, IDC_LDAPSERVER),TRUE); // Always enable
// pConfig->bUpdateAdminPrefs);
if (pConfig->bUpdateAllKeys)
CheckDlgButton(hwndDlg, IDC_UPDATEALL, BST_CHECKED);
else
CheckDlgButton(hwndDlg, IDC_UPDATEALL, BST_UNCHECKED);
EnableWindow(GetDlgItem(hwndDlg, IDC_ALLDAYS), pConfig->bUpdateAllKeys);
if (pConfig->bUpdateTrustedIntroducers)
CheckDlgButton(hwndDlg, IDC_UPDATETRUSTED, BST_CHECKED);
else
CheckDlgButton(hwndDlg, IDC_UPDATETRUSTED, BST_UNCHECKED);
EnableWindow(GetDlgItem(hwndDlg, IDC_TRUSTEDDAYS),
pConfig->bUpdateTrustedIntroducers);
wsprintf(szBuffer, "%d", pConfig->nDaysUpdatePrefs);
SetWindowText(GetDlgItem(hwndDlg, IDC_PREFDAYS), szBuffer);
wsprintf(szBuffer, "%d", pConfig->nDaysUpdateAllKeys);
SetWindowText(GetDlgItem(hwndDlg, IDC_ALLDAYS), szBuffer);
wsprintf(szBuffer, "%d", pConfig->nDaysUpdateTrustedIntroducers);
SetWindowText(GetDlgItem(hwndDlg, IDC_TRUSTEDDAYS), szBuffer);
if (pConfig->szLDAPServer != NULL)
SetWindowText(GetDlgItem(hwndDlg, IDC_LDAPSERVER),
pConfig->szLDAPServer);
else
SetWindowText(GetDlgItem(hwndDlg, IDC_LDAPSERVER), "");
if (!(GetInstalledProduct(pConfig->szProductKey) &
(Installer_PGPds | Installer_PGPdisk | Installer_PGPmail |
Installer_PGPvpn)))
{
EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATEALL), FALSE);
EnableWindow(GetDlgItem(hwndDlg, IDC_ALLDAYS), FALSE);
EnableWindow(GetDlgItem(hwndDlg, IDC_UPDATETRUSTED), FALSE);
EnableWindow(GetDlgItem(hwndDlg, IDC_TRUSTEDDAYS), FALSE);
}
if (pConfig->bActiveX)
{
RECT rcOrig;
RECT rcNew;
POINT *pOrig = (POINT *) &rcOrig;
POINT *pNew = (POINT *) &rcNew;
LONG lOffset;
GetWindowRect(GetDlgItem(hwndDlg, IDC_UPDATEPREFS), &rcOrig);
GetWindowRect(GetDlgItem(hwndDlg, IDC_UPDATEALL), &rcNew);
ScreenToClient(hwndDlg, pOrig);
ScreenToClient(hwndDlg, pNew);
lOffset = pNew->y - pOrig->y;
ShowWindow(GetDlgItem(hwndDlg, IDC_UPDATEPREFS), SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg, IDC_PREFDAYS), SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg, IDC_PREFSPIN), SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg, IDC_PREFDAYLABEL), SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg, IDC_LDAPLABEL), SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg, IDC_LDAPSERVER), SW_HIDE);
SetWindowPos(GetDlgItem(hwndDlg, IDC_UPDATEALL), 0, pNew->x,
pNew->y - lOffset, 0, 0,
SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
GetWindowRect(GetDlgItem(hwndDlg, IDC_ALLDAYS), &rcNew);
ScreenToClient(hwndDlg, pNew);
SetWindowPos(GetDlgItem(hwndDlg, IDC_ALLDAYS), 0, pNew->x,
pNew->y - lOffset, 0, 0,
SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
GetWindowRect(GetDlgItem(hwndDlg, IDC_ALLSPIN), &rcNew);
ScreenToClient(hwndDlg, pNew);
SetWindowPos(GetDlgItem(hwndDlg, IDC_ALLSPIN), 0, pNew->x,
pNew->y - lOffset, 0, 0,
SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
GetWindowRect(GetDlgItem(hwndDlg, IDC_ALLDAYLABEL), &rcNew);
ScreenToClient(hwndDlg, pNew);
SetWindowPos(GetDlgItem(hwndDlg, IDC_ALLDAYLABEL), 0, pNew->x,
pNew->y - lOffset, 0, 0,
SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
GetWindowRect(GetDlgItem(hwndDlg, IDC_UPDATETRUSTED), &rcNew);
ScreenToClient(hwndDlg, pNew);
SetWindowPos(GetDlgItem(hwndDlg, IDC_UPDATETRUSTED), 0, pNew->x,
pNew->y - lOffset, 0, 0,
SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
GetWindowRect(GetDlgItem(hwndDlg, IDC_TRUSTEDDAYS), &rcNew);
ScreenToClient(hwndDlg, pNew);
SetWindowPos(GetDlgItem(hwndDlg, IDC_TRUSTEDDAYS), 0, pNew->x,
pNew->y - lOffset, 0, 0,
SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
GetWindowRect(GetDlgItem(hwndDlg, IDC_TRUSTEDSPIN), &rcNew);
ScreenToClient(hwndDlg, pNew);
SetWindowPos(GetDlgItem(hwndDlg, IDC_TRUSTEDSPIN), 0, pNew->x,
pNew->y - lOffset, 0, 0,
SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
GetWindowRect(GetDlgItem(hwndDlg, IDC_TRUSTEDDAYLABEL), &rcNew);
ScreenToClient(hwndDlg, pNew);
SetWindowPos(GetDlgItem(hwndDlg, IDC_TRUSTEDDAYLABEL), 0, pNew->x,
pNew->y - lOffset, 0, 0,
SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_SHOWWINDOW);
}
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 + -