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

📄 pnaddwiz.c

📁 vc环境下的pgp源码
💻 C
📖 第 1 页 / 共 5 页
字号:
	return bReturnCode;
}


//	______________________________________________
//
//	Dialog procedure for asking user if host is behind gateway

static LRESULT WINAPI 
sAddWizBehindGatewayDlgProc (
		HWND	hwnd, 
		UINT	uMsg, 
		WPARAM	wParam,
		LPARAM	lParam) 
{
	BOOL			bReturnCode = FALSE;
	PADDHOSTSTRUCT	pahs		= NULL;

	switch (uMsg) {
	case WM_INITDIALOG:
	{
		CHAR			sz[kMaxNetHostNameLength +128];
		CHAR			szFormat[kMaxNetHostNameLength +1];
		PROPSHEETPAGE*	ppspMsgRec	= (PROPSHEETPAGE *) lParam;

		pahs = (PADDHOSTSTRUCT) ppspMsgRec->lParam;
		SetWindowLong (hwnd, GWL_USERDATA, (LPARAM)pahs);

		if (pahs->iSelectedHost >= 0)
		{
			// set text strings
			GetDlgItemText (hwnd, IDC_TEXT1, szFormat, sizeof(szFormat));
			wsprintf (sz, szFormat, 
				pahs->ppnconfig->pHostList[pahs->iSelectedHost].hostName);
			SetDlgItemText (hwnd, IDC_TEXT1, sz);

			GetDlgItemText (hwnd, IDC_TEXT2, szFormat, sizeof(szFormat));
			wsprintf (sz, szFormat, 
				pahs->ppnconfig->pHostList[pahs->iSelectedHost].hostName);
			SetDlgItemText (hwnd, IDC_TEXT2, sz);

			GetDlgItemText (hwnd, IDC_TEXT3, szFormat, sizeof(szFormat));
			wsprintf (sz, szFormat, 
				pahs->ppnconfig->pHostList[pahs->iSelectedHost].hostName);
			SetDlgItemText (hwnd, IDC_TEXT3, sz);
		}

		// set default state
		CheckRadioButton (hwnd, 
				IDC_BEHINDGATEWAY, IDC_NOTBEHINDGATEWAY, IDC_BEHINDGATEWAY);
		break;
	}

	case WM_ACTIVATE :
		InvalidateRect (hwnd, NULL, TRUE);
		break;

	case WM_PAINT :
		pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
		if (pahs->hPalette)
		{
			PAINTSTRUCT ps;
			HDC	hDC = BeginPaint (hwnd, &ps);
			SelectPalette (hDC, pahs->hPalette, FALSE);
			RealizePalette (hDC);
			EndPaint (hwnd, &ps);
		}
		break;

	case WM_NOTIFY:
	{
		LPNMHDR pnmh = (LPNMHDR) lParam;

		switch(pnmh->code) {
		case PSN_SETACTIVE:
		{
			PGPUInt32	uHostType;
			pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);

			if (pahs->iSelectedHost < 0)
			{
				SetWindowLong (hwnd, DWL_MSGRESULT, -1L); 
			}
			else
			{
				uHostType = 
					pahs->ppnconfig->pHostList[pahs->iSelectedHost].hostType;

				if (uHostType != kPGPnetSecureGateway) 
					SetWindowLong (hwnd, DWL_MSGRESULT, -1L);
				else 
				{
					PostMessage	(GetParent (hwnd), 
						PSM_SETWIZBUTTONS, 0, PSWIZB_BACK|PSWIZB_NEXT);
					SendDlgItemMessage (hwnd, IDC_WIZBITMAP, STM_SETIMAGE, 
						IMAGE_BITMAP, (LPARAM) pahs->hBitmap);
					SetWindowLong (hwnd, DWL_MSGRESULT, 0L);
				}
			}
			bReturnCode = TRUE;
			break;
		}

		case PSN_KILLACTIVE:
			pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
			if (IsDlgButtonChecked (hwnd, IDC_BEHINDGATEWAY) == BST_CHECKED)
				pahs->bBehindGateway = TRUE;
			else
				pahs->bBehindGateway = FALSE;
			SetWindowLong (hwnd, DWL_MSGRESULT, 0L);
			bReturnCode = TRUE;
			break;

		case PSN_QUERYCANCEL:
			break;
		}
		
		break;
	}
	}

	return bReturnCode;
}


//	______________________________________________
//
//	Dialog procedure for asking user host type

static LRESULT WINAPI 
sAddWizHostTypeDlgProc (
		HWND	hwnd, 
		UINT	uMsg, 
		WPARAM	wParam,
		LPARAM	lParam) 
{
	BOOL			bReturnCode = FALSE;
	PADDHOSTSTRUCT	pahs		= NULL;

	switch (uMsg) {
	case WM_INITDIALOG:
	{
		PROPSHEETPAGE *ppspMsgRec = (PROPSHEETPAGE *) lParam;
		pahs = (PADDHOSTSTRUCT) ppspMsgRec->lParam;
		SetWindowLong (hwnd, GWL_USERDATA, (LPARAM)pahs);

		// set default state
		CheckRadioButton (hwnd, IDC_HOST, IDC_GATEWAY, IDC_HOST);
		break;
	}

	case WM_ACTIVATE :
		InvalidateRect (hwnd, NULL, TRUE);
		break;

	case WM_PAINT :
		pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
		if (pahs->hPalette)
		{
			PAINTSTRUCT ps;
			HDC	hDC = BeginPaint (hwnd, &ps);
			SelectPalette (hDC, pahs->hPalette, FALSE);
			RealizePalette (hDC);
			EndPaint (hwnd, &ps);
		}
		break;

	case PSM_QUERYSIBLINGS :
		// set default state
		CheckRadioButton (hwnd, IDC_HOST, IDC_GATEWAY, IDC_HOST);
		return 0;
	
	case WM_NOTIFY:
	{
		LPNMHDR pnmh = (LPNMHDR) lParam;

		switch(pnmh->code) {
		case PSN_SETACTIVE:
		{
			pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);

#if !PGP_FREEWARE
			if (pahs->bBehindGateway) 
			{
				ShowWindow (GetDlgItem (hwnd, IDC_GATEWAY), SW_HIDE);
				ShowWindow (GetDlgItem (hwnd, IDC_GATEWAYTEXT), SW_HIDE);
				EnableWindow (GetDlgItem (hwnd, IDC_GATEWAY), FALSE);
			}
			else
			{
				ShowWindow (GetDlgItem (hwnd, IDC_GATEWAY), SW_SHOW);
				ShowWindow (GetDlgItem (hwnd, IDC_GATEWAYTEXT), SW_SHOW);
				EnableWindow (GetDlgItem (hwnd, IDC_GATEWAY), TRUE);
			}
#endif //PGP_FREEWARE

			if (pahs->bFirstTime)
				PostMessage	(GetParent (hwnd), 
						PSM_SETWIZBUTTONS, 0, PSWIZB_BACK|PSWIZB_NEXT);
			else
				PostMessage	(GetParent (hwnd), 
						PSM_SETWIZBUTTONS, 0, PSWIZB_NEXT);

			SendDlgItemMessage (hwnd, IDC_WIZBITMAP, STM_SETIMAGE, 
					IMAGE_BITMAP, (LPARAM) pahs->hBitmap);
			SetWindowLong (hwnd, DWL_MSGRESULT, 0L);
			bReturnCode = TRUE;
			break;
		}

		case PSN_KILLACTIVE:
			pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
			if (IsDlgButtonChecked (hwnd, IDC_HOST) == BST_CHECKED)
				pahs->uHostType = WIZ_HOST;
			else if (IsDlgButtonChecked (hwnd, IDC_SUBNET) == BST_CHECKED)
				pahs->uHostType = WIZ_SUBNET;
			else 
				pahs->uHostType = WIZ_GATEWAY;
			SetWindowLong (hwnd, DWL_MSGRESULT, 0L);
			bReturnCode = TRUE;
			break;

		case PSN_QUERYCANCEL:
			break;
		}
		
		break;
	}
	}

	return bReturnCode;
}


//	______________________________________________
//
//	Dialog procedure for asking user if secure or insecure communications

static LRESULT WINAPI 
sAddWizSecureDlgProc (
		HWND	hwnd, 
		UINT	uMsg, 
		WPARAM	wParam,
		LPARAM	lParam) 
{
	BOOL			bReturnCode = FALSE;
	PADDHOSTSTRUCT	pahs		= NULL;

	switch (uMsg) {
	case WM_INITDIALOG:
	{
		PROPSHEETPAGE *ppspMsgRec = (PROPSHEETPAGE *) lParam;
		pahs = (PADDHOSTSTRUCT) ppspMsgRec->lParam;
		SetWindowLong (hwnd, GWL_USERDATA, (LPARAM)pahs);

		// set default state
		CheckRadioButton (hwnd, IDC_SECURE, IDC_INSECURE, IDC_SECURE);
		break;
	}

	case WM_ACTIVATE :
		InvalidateRect (hwnd, NULL, TRUE);
		break;

	case WM_PAINT :
		pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
		if (pahs->hPalette)
		{
			PAINTSTRUCT ps;
			HDC	hDC = BeginPaint (hwnd, &ps);
			SelectPalette (hDC, pahs->hPalette, FALSE);
			RealizePalette (hDC);
			EndPaint (hwnd, &ps);
		}
		break;

	case PSM_QUERYSIBLINGS :
		// set default state
		CheckRadioButton (hwnd, IDC_SECURE, IDC_INSECURE, IDC_SECURE);
		return 0;
	
	case WM_NOTIFY:
	{
		LPNMHDR pnmh = (LPNMHDR) lParam;

		switch(pnmh->code) {
		case PSN_SETACTIVE:
			pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
			if (pahs->uHostType == WIZ_GATEWAY) 
			{
				pahs->bSecure = TRUE;
				SetWindowLong (hwnd, DWL_MSGRESULT, -1L);
			}
#if !PGPNET_SECURE_HOSTS_BEHIND_GATEWAYS
			else if (pahs->bBehindGateway)
			{
				pahs->bSecure = FALSE;
				SetWindowLong (hwnd, DWL_MSGRESULT, -1L);
			}
#endif
			else
			{
				PostMessage	(GetParent (hwnd), 
						PSM_SETWIZBUTTONS, 0, PSWIZB_BACK|PSWIZB_NEXT);
				SendDlgItemMessage (hwnd, IDC_WIZBITMAP, STM_SETIMAGE, 
						IMAGE_BITMAP, (LPARAM) pahs->hBitmap);
				SetWindowLong (hwnd, DWL_MSGRESULT, 0L);
			}
			bReturnCode = TRUE;
			break;

		case PSN_KILLACTIVE:
			pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
			if (IsDlgButtonChecked (hwnd, IDC_SECURE) == BST_CHECKED)
				pahs->bSecure = TRUE;
			else
				pahs->bSecure = FALSE;
			SetWindowLong (hwnd, DWL_MSGRESULT, 0L);
			bReturnCode = TRUE;
			break;

		case PSN_QUERYCANCEL:
			break;
		}
		
		break;
	}
	}

	return bReturnCode;
}


//	______________________________________________
//
//	Dialog procedure for asking user the domain name of host

static LRESULT WINAPI 
sAddWizHostNameDlgProc (
		HWND	hwnd, 
		UINT	uMsg, 
		WPARAM	wParam,
		LPARAM	lParam) 
{
	BOOL			bReturnCode = FALSE;
	PADDHOSTSTRUCT	pahs		= NULL;

	switch (uMsg) {
	case WM_INITDIALOG:
	{
		PROPSHEETPAGE *ppspMsgRec = (PROPSHEETPAGE *) lParam;
		pahs = (PADDHOSTSTRUCT) ppspMsgRec->lParam;
		SetWindowLong (hwnd, GWL_USERDATA, (LPARAM)pahs);
		break;
	}

	case WM_ACTIVATE :
		InvalidateRect (hwnd, NULL, TRUE);
		break;

	case WM_PAINT :
		pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
		if (pahs->hPalette)
		{
			PAINTSTRUCT ps;
			HDC	hDC = BeginPaint (hwnd, &ps);
			SelectPalette (hDC, pahs->hPalette, FALSE);
			RealizePalette (hDC);
			EndPaint (hwnd, &ps);
		}
		break;

	case PSM_QUERYSIBLINGS :
		// set default state
		SetDlgItemText (hwnd, IDC_HOSTNAME, "");
		return 0;
	
	case WM_COMMAND :
		if (LOWORD (wParam) == IDC_HOSTNAME)
		{
			// enable/disable the 'Next' button
			if (GetWindowTextLength (GetDlgItem (hwnd, IDC_HOSTNAME)) > 0)
				PropSheet_SetWizButtons (
						GetParent (hwnd), PSWIZB_NEXT|PSWIZB_BACK);
			else
				PropSheet_SetWizButtons (
						GetParent (hwnd), PSWIZB_BACK);
		}
		break;

	case WM_NOTIFY:
	{
		LPNMHDR pnmh = (LPNMHDR) lParam;

		switch(pnmh->code) {
		case PSN_SETACTIVE:
			pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
			PostMessage	(GetParent (hwnd), 
					PSM_SETWIZBUTTONS, 0, PSWIZB_BACK|PSWIZB_NEXT);
			SendDlgItemMessage (hwnd, IDC_WIZBITMAP, STM_SETIMAGE, 
					IMAGE_BITMAP, (LPARAM) pahs->hBitmap);

			// enable/disable the 'Next' button
			if (GetWindowTextLength (GetDlgItem (hwnd, IDC_HOSTNAME)) > 0)
				PropSheet_SetWizButtons (
						GetParent (hwnd), PSWIZB_NEXT|PSWIZB_BACK);
			else
				PropSheet_SetWizButtons (
						GetParent (hwnd), PSWIZB_BACK);

			// set the window text
			switch (pahs->uHostType) {
			case WIZ_HOST :
				ShowWindow (GetDlgItem (hwnd, IDC_TEXTHOST), SW_SHOW);
				ShowWindow (GetDlgItem (hwnd, IDC_TEXTSUBNET), SW_HIDE);
				ShowWindow (GetDlgItem (hwnd, IDC_TEXTGATEWAY), SW_HIDE);
				break;

			case WIZ_SUBNET :
				ShowWindow (GetDlgItem (hwnd, IDC_TEXTHOST), SW_HIDE);
				ShowWindow (GetDlgItem (hwnd, IDC_TEXTSUBNET), SW_SHOW);
				ShowWindow (GetDlgItem (hwnd, IDC_TEXTGATEWAY), SW_HIDE);
				break;

			case WIZ_GATEWAY :
				ShowWindow (GetDlgItem (hwnd, IDC_TEXTHOST), SW_HIDE);
				ShowWindow (GetDlgItem (hwnd, IDC_TEXTSUBNET), SW_HIDE);
				ShowWindow (GetDlgItem (hwnd, IDC_TEXTGATEWAY), SW_SHOW);
				break;
			}
			SetWindowLong (hwnd, DWL_MSGRESULT, 0L);
			bReturnCode = TRUE;
			break;

		case PSN_KILLACTIVE:
			pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
			SetFocus (NULL);
			GetDlgItemText (hwnd, IDC_HOSTNAME, pahs->pheNew->hostName,
								sizeof(pahs->pheNew->hostName));
			SetWindowLong (hwnd, DWL_MSGRESULT, 0L);
			bReturnCode = TRUE;
			break;

		case PSN_QUERYCANCEL:
			break;
		}
		
		break;
	}
	}

	return bReturnCode;
}


//	______________________________________________
//
//	Dialog procedure for asking user the IP address of subnet

static LRESULT WINAPI 
sAddWizSubnetAddressDlgProc (
		HWND	hwnd, 
		UINT	uMsg, 
		WPARAM	wParam,
		LPARAM	lParam) 
{
	BOOL			bReturnCode = FALSE;
	PADDHOSTSTRUCT	pahs		= NULL;

	switch (uMsg) {
	case WM_INITDIALOG:
	{
		PROPSHEETPAGE*	ppspMsgRec = (PROPSHEETPAGE *) lParam;
		RECT			rc;

		pahs = (PADDHOSTSTRUCT) ppspMsgRec->lParam;
		SetWindowLong (hwnd, GWL_USERDATA, (LPARAM)pahs);

		// create IP edit control for address
		GetWindowRect (GetDlgItem (hwnd, IDC_IPADDRESS), &rc);
		MapWindowPoints (NULL, hwnd, (LPPOINT)&rc, 2);
		pahs->hwndIPAddress = CreateWindowEx (
				WS_EX_CLIENTEDGE,
				WC_PGPIPADDRESS, "", 
				WS_CHILD|WS_VISIBLE|WS_TABSTOP,
				rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top,
				hwnd, NULL, g_hinst, NULL);
		// set tab-order of control
		SetWindowPos (pahs->hwndIPAddress, 
						GetDlgItem (hwnd, IDC_IPADDRESS),
						0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);

		// create IP edit control for mask
		GetWindowRect (GetDlgItem (hwnd, IDC_SUBNETMASK), &rc);
		MapWindowPoints (NULL, hwnd, (LPPOINT)&rc, 2);
		pahs->hwndSubnetMask = CreateWindowEx (
				WS_EX_CLIENTEDGE,
				WC_PGPIPADDRESS, "", 
				WS_CHILD|WS_VISIBLE|WS_TABSTOP,
				rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top,
				hwnd, NULL, g_hinst, NULL);
		// set tab-order of control
		SetWindowPos (pahs->hwndSubnetMask, 
						GetDlgItem (hwnd, IDC_SUBNETMASK),
						0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
		break;
	}

	case WM_DESTROY :
		pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
		DestroyWindow (pahs->hwndIPAddress);
		DestroyWindow (pahs->hwndSubnetMask);
		break;

	case WM_ACTIVATE :
		InvalidateRect (hwnd, NULL, TRUE);
		break;

	case WM_PAINT :
		pahs = (PADDHOSTSTRUCT)GetWindowLong (hwnd, GWL_USERDATA);
		if (pahs->hPalette)
		{
			PAINTSTRUCT ps;
			HDC	hDC = BeginPaint (hwnd, &ps);
			SelectPalette (hDC, pahs->hPalette, FALSE);

⌨️ 快捷键说明

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