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

📄 cllicense.c

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 C
📖 第 1 页 / 共 3 页
字号:
			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 + -