📄 cllicense.c
字号:
return TRUE;
}
case WM_DESTROY:
{
break;
}
case WM_HELP:
case WM_CONTEXTMENU:
{
return PGPclHtmlHelp (hdlg, uMsg, wParam, lParam,
(char*)kPGPclHelpFile, aNoLicenseIds);
}
case WM_QUIT:
case WM_CLOSE:
{
EndDialog (hdlg, FALSE);
break;
}
case WM_COMMAND:
{
switch (wParam)
{
case IDC_UPGRADE:
{
char szWebLink[100];
Sleep (150);
LoadString (g_hInst, IDS_PGPSTORE,
szWebLink, sizeof (szWebLink));
PGPclWebBrowse (szWebLink);
break;
}
case IDCANCEL:
{
EndDialog(hdlg, FALSE);
break;
}
}
return TRUE;
}
}
return FALSE;
}
PGPError PGPclExport
PGPclNoLicense(
HWND hwndParent,
PGPclComponentIndex index)
{
PNL pnl;
BOOL DialogReturn;
WNDCLASS wndclass;
INT iIDS;
char szNotifyText[200];
char szLicenseReq[100];
if (PGPlnIsAuthorized ())
iIDS = IDS_NOLICENSESOME;
else
iIDS = IDS_NOLICENSENONE;
LoadString (g_hInst, iIDS, szNotifyText, sizeof(szNotifyText));
switch (index) {
case kPGPclPGPEnterprise :
case kPGPclPGPadmin :
iIDS = IDS_PGPENTERPRISE;
break;
case kPGPclPGPDesktop :
case kPGPclGroupwisePlugin :
case kPGPclLotusNotesPlugin :
iIDS = IDS_PGPDESKTOP;
break;
case kPGPclPGPPersonal :
case kPGPclPGPdisk :
case kPGPclICQplugin :
case kPGPclEudoraPlugin :
case kPGPclExchangePlugin :
case kPGPclOutlookExpressPlugin :
case kPGPclPGPmailPlugin :
iIDS = IDS_PGPPERSONAL;
break;
default :
iIDS = 0;
break;
}
if (iIDS)
LoadString (g_hInst, iIDS, szLicenseReq, sizeof(szLicenseReq));
else
szLicenseReq[0] = '\0';
pnl.szNotifyText = szNotifyText;
pnl.szLicenseReq = szLicenseReq;
memset (&wndclass, 0x00, sizeof(WNDCLASS));
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = (WNDPROC)DefDlgProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = DLGWINDOWEXTRA;
wndclass.hInstance = g_hInst;
wndclass.hIcon = LoadIcon (g_hInst, MAKEINTRESOURCE(IDI_KEYICON));
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = "PGPLICENSECLASS";
RegisterClass (&wndclass);
DialogReturn = DialogBoxParam(g_hInst,
MAKEINTRESOURCE(IDD_NOLICENSE), hwndParent,
sNoLicenseDlgProc, (LPARAM) &pnl);
return kPGPError_NoErr;
}
static BOOL WINAPI
sDisplayLicenseDlgProc(HWND hdlg, UINT uMsg,
WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
{
ECL *ecl;
char *szText,*szLocal;
int memamt;
char name[100];
char corp[100];
PGPPrefRef prefref;
PGPUInt32 u;
HWND hwnd,hwndButton;
ecl=(ECL *)lParam;
memamt=512+200;
SetWindowLong(hdlg,GWL_USERDATA,(long)lParam);
UTF8EditInit (GetDlgItem(hdlg,IDC_LENAME));
UTF8EditInit (GetDlgItem(hdlg,IDC_LEORG));
UTF8EditInit (GetDlgItem(hdlg,IDC_LESEAT));
UTF8EditInit (GetDlgItem(hdlg,IDC_LEDATE));
szText=malloc(memamt);
if (szText != NULL)
{
int days;
PGPlnLicenseName(name,100);
PGPlnLicenseCorp(corp,100);
if (PGPlnLicenseQuantity() > 1)
{
RECT rc;
hwnd = GetDlgItem(hdlg,IDC_LTNAME);
ShowWindow (hwnd,SW_HIDE);
EnableWindow (hwnd,FALSE);
hwnd = UTF8EditGetHandle (GetDlgItem(hdlg,IDC_LENAME));
ShowWindow (hwnd,SW_HIDE);
EnableWindow (hwnd,FALSE);
hwnd = GetDlgItem(hdlg,IDC_LTORG);
GetWindowRect (hwnd, &rc);
MapWindowPoints (NULL, hdlg, (LPPOINT)&rc, 2);
SetWindowPos (hwnd, NULL, rc.left, rc.top-VERTICAL_SHIFT,
0, 0, SWP_NOZORDER|SWP_NOSIZE);
hwnd = UTF8EditGetHandle (GetDlgItem(hdlg,IDC_LEORG));
GetWindowRect (hwnd, &rc);
MapWindowPoints (NULL, hdlg, (LPPOINT)&rc, 2);
SetWindowPos (hwnd, NULL, rc.left, rc.top-VERTICAL_SHIFT,
0, 0, SWP_NOZORDER|SWP_NOSIZE);
hwnd = GetDlgItem(hdlg,IDC_LTSEAT);
GetWindowRect (hwnd, &rc);
MapWindowPoints (NULL, hdlg, (LPPOINT)&rc, 2);
SetWindowPos (hwnd, NULL, rc.left, rc.top-VERTICAL_SHIFT,
0, 0, SWP_NOZORDER|SWP_NOSIZE);
hwnd = UTF8EditGetHandle (GetDlgItem(hdlg,IDC_LESEAT));
GetWindowRect (hwnd, &rc);
MapWindowPoints (NULL, hdlg, (LPPOINT)&rc, 2);
SetWindowPos (hwnd, NULL, rc.left, rc.top-VERTICAL_SHIFT,
0, 0, SWP_NOZORDER|SWP_NOSIZE);
hwnd = GetDlgItem(hdlg,IDC_LTDATE);
GetWindowRect (hwnd, &rc);
MapWindowPoints (NULL, hdlg, (LPPOINT)&rc, 2);
SetWindowPos (hwnd, NULL, rc.left, rc.top-VERTICAL_SHIFT,
0, 0, SWP_NOZORDER|SWP_NOSIZE);
hwnd = UTF8EditGetHandle (GetDlgItem(hdlg,IDC_LEDATE));
GetWindowRect (hwnd, &rc);
MapWindowPoints (NULL, hdlg, (LPPOINT)&rc, 2);
SetWindowPos (hwnd, NULL, rc.left, rc.top-VERTICAL_SHIFT,
0, 0, SWP_NOZORDER|SWP_NOSIZE);
}
else
UTF8EditSetText (GetDlgItem(hdlg,IDC_LENAME), name);
UTF8EditSetText (GetDlgItem(hdlg,IDC_LEORG), corp);
wsprintf(szText,"%d",PGPlnLicenseQuantity());
UTF8EditSetText (GetDlgItem(hdlg,IDC_LESEAT), szText);
days = PGPlnLicenseDays ();
if (days < 0)
days = 0;
if (days == 0x7fffffff)
{
LoadString (g_hInst, IDS_LICENSEEXPIRENEVER,
szText, memamt);
}
else if (days <= 60)
{
char szFmt[128];
if (PGPlnEvaluation())
{
LoadString (g_hInst, IDS_DAYSLEFTINEVAL,
szFmt, sizeof(szFmt));
}
else
{
LoadString (g_hInst, IDS_DAYSLEFTINLICENSE,
szFmt, sizeof(szFmt));
}
wsprintf (szText, szFmt, days);
}
else
{
struct tm when;
time_t now;
SYSTEMTIME systemtime;
time (&now);
when = *localtime (&now);
when.tm_mday = when.tm_mday + days;
mktime (&when);
sTMToSystemTime (&when, &systemtime);
GetDateFormat (LOCALE_USER_DEFAULT, DATE_SHORTDATE,
&systemtime, NULL, szText, memamt);
}
UTF8EditSetText (GetDlgItem (hdlg, IDC_LEDATE), szText);
szLocal = (char *)malloc(memamt);
if (PGPlnEvaluation ())
{
hwnd = GetDlgItem (hdlg,IDC_ENTERPRISETEXT);
ShowWindow (hwnd, SW_HIDE);
EnableWindow (hwnd, FALSE);
hwnd = GetDlgItem (hdlg,IDC_ENTERPRISESTATUS);
ShowWindow (hwnd, SW_HIDE);
EnableWindow (hwnd, FALSE);
hwnd = GetDlgItem (hdlg,IDC_DESKTOPTEXT);
ShowWindow (hwnd, SW_HIDE);
EnableWindow (hwnd, FALSE);
hwnd = GetDlgItem (hdlg,IDC_DESKTOPSTATUS);
ShowWindow (hwnd, SW_HIDE);
EnableWindow (hwnd, FALSE);
hwnd = GetDlgItem (hdlg,IDC_PGPDISKTEXT);
ShowWindow (hwnd, SW_HIDE);
EnableWindow (hwnd, FALSE);
hwnd = GetDlgItem (hdlg,IDC_PGPDISKSTATUS);
ShowWindow (hwnd, SW_HIDE);
EnableWindow (hwnd, FALSE);
hwnd = GetDlgItem (hdlg,IDC_PGPMAILTEXT);
ShowWindow (hwnd, SW_HIDE);
EnableWindow (hwnd, FALSE);
hwnd = GetDlgItem (hdlg,IDC_PGPMAILSTATUS);
ShowWindow (hwnd, SW_HIDE);
EnableWindow (hwnd, FALSE);
}
else
{
hwnd=GetDlgItem(hdlg,IDC_PURCHASE);
ShowWindow(hwnd,SW_HIDE);
EnableWindow(hwnd,FALSE);
hwnd=GetDlgItem(hdlg,IDC_EVALTEXT);
ShowWindow(hwnd,SW_HIDE);
EnableWindow(hwnd,FALSE);
if (PGPlnEnterprise())
u = IDS_ENABLED;
else
u = IDS_DISABLED;
LoadString (g_hInst, u, szText, memamt);
SetDlgItemText (hdlg, IDC_ENTERPRISESTATUS, szText);
if (PGPlnDesktop())
u = IDS_ENABLED;
else
u = IDS_DISABLED;
LoadString (g_hInst, u, szText, memamt);
SetDlgItemText (hdlg, IDC_DESKTOPSTATUS, szText);
if (PGPlnPGPdiskEnabled())
u = IDS_ENABLED;
else
u = IDS_DISABLED;
LoadString (g_hInst, u, szText, memamt);
SetDlgItemText (hdlg, IDC_PGPDISKSTATUS, szText);
if (PGPlnPGPmailEnabled())
u = IDS_ENABLED;
else
u = IDS_DISABLED;
LoadString (g_hInst, u, szText, memamt);
SetDlgItemText (hdlg, IDC_PGPMAILSTATUS, szText);
SetWindowText(GetDlgItem(hdlg,IDC_PRODUCTTEXT),szText);
}
free(szText);
}
if(!PGPclIsAdminInstall())
{
// Hide upgrade for a locked LN
if(IsntPGPError(PGPclPeekClientLibPrefRefs(&prefref,NULL)))
{
if (IsntPGPError (
PGPGetPrefFlags( prefref, kPGPPrefLicenseNumber, &u)))
{
if (u & kPGPPrefFlags_DisableGUI)
{
hwndButton=GetDlgItem(hdlg,IDC_CHANGE);
ShowWindow(hwndButton,SW_HIDE);
EnableWindow(hwndButton,FALSE);
hwndButton=GetDlgItem(hdlg,IDC_PURCHASE);
ShowWindow(hwndButton,SW_HIDE);
EnableWindow(hwndButton,FALSE);
}
}
}
}
return TRUE;
}
case WM_DESTROY:
{
UTF8EditDestroy (GetDlgItem(hdlg,IDC_LENAME));
UTF8EditDestroy (GetDlgItem(hdlg,IDC_LEORG));
UTF8EditDestroy (GetDlgItem(hdlg,IDC_LESEAT));
UTF8EditDestroy (GetDlgItem(hdlg,IDC_LEDATE));
break;
}
case WM_HELP:
case WM_CONTEXTMENU:
{
return PGPclHtmlHelp (hdlg, uMsg, wParam, lParam,
(char*)kPGPclHelpFile, aLicenseDisplayIds);
}
case WM_QUIT:
case WM_CLOSE:
{
EndDialog(hdlg, FALSE);
break;
}
/*
case WM_PAINT:
{
HDC hDC;
PAINTSTRUCT ps;
ECL *ecl;
ecl=(ECL *)GetWindowLong (hdlg, GWL_USERDATA);
hDC = BeginPaint (hdlg, &ps);
SelectPalette (hDC, ecl->hPalette, FALSE);
RealizePalette (hDC);
TransparentBitmap(ecl->hLNKey,72,88,RGB(255,0,0),hDC,15,10);
EndPaint (hdlg, &ps);
break;
}
*/
case WM_COMMAND:
{
switch(wParam)
{
case IDC_PURCHASE:
{
char szWebLink[100];
Sleep (150);
LoadString (g_hInst, IDS_PGPSTORE,
szWebLink, sizeof (szWebLink));
PGPclWebBrowse (szWebLink);
break;
}
case IDOK:
{
EndDialog(hdlg, FALSE);
break;
}
case IDC_CHANGE:
{
EndDialog(hdlg, TRUE);
}
}
return TRUE;
}
}
return FALSE;
}
PGPError PGPclExport
PGPclDisplayLicense(
PGPContextRef context,
HWND hwndParent)
{
ECL ecl;
BOOL DialogReturn;
WNDCLASS wndclass;
memset (&wndclass, 0x00, sizeof(WNDCLASS));
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = (WNDPROC)DefDlgProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = DLGWINDOWEXTRA;
wndclass.hInstance = g_hInst;
wndclass.hIcon = LoadIcon (g_hInst, MAKEINTRESOURCE(IDI_KEYICON));
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = "PGPLICENSECLASS";
RegisterClass (&wndclass);
ecl.context=context;
DialogReturn = DialogBoxParam(g_hInst,
MAKEINTRESOURCE(IDD_DISPLAYLICENSE), hwndParent,
sDisplayLicenseDlgProc, (LPARAM) &ecl);
if (DialogReturn)
return PGPclEnterLicense(context,hwndParent);
return kPGPError_NoErr;
}
PGPError PGPclExport
PGPclEnterLicense(
PGPContextRef context,
HWND hwndParent)
{
ECL ecl;
BOOL DialogReturn;
WNDCLASS wndclass;
memset (&wndclass, 0x00, sizeof(WNDCLASS));
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = (WNDPROC)DefDlgProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = DLGWINDOWEXTRA;
wndclass.hInstance = g_hInst;
wndclass.hIcon = LoadIcon (g_hInst, MAKEINTRESOURCE(IDI_KEYICON));
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = "PGPLICENSECLASS";
RegisterClass (&wndclass);
ecl.context=context;
ecl.bManual=FALSE;
ecl.hLNKey = CLLoadResourceBitmap(
g_hInst, MAKEINTRESOURCE(IDB_LNKEY), &(ecl.hPalette));
DialogReturn = DialogBoxParam(g_hInst,
MAKEINTRESOURCE(IDD_ENTERLICENSE), hwndParent,
sEnterChangeLicenseDlgProc, (LPARAM) &ecl);
DeleteObject (ecl.hLNKey);
DeleteObject (ecl.hPalette);
if (DialogReturn)
{
PGPlnLicenseCheck (context);
return PGPclDisplayLicense (context, hwndParent);
}
return kPGPError_NoErr;
}
/*__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 + -