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

📄 enclyptorproc.c

📁 vc环境下的pgp源码
💻 C
📖 第 1 页 / 共 2 页
字号:
							DoPaste(TRUE,hwndFocus);
						else
							DoFocus(TRUE,hwndFocus);
					}
					InPGPOperation = FALSE;
					break;
				}

				case ID_SIGNWINDOW:
				{
					InPGPOperation = TRUE;
					if(DoCopy(hwnd,PGPsc,TRUE,&hwndFocus))
					{
						if(EncryptClipboard(hwnd, szApp, PGPsc,PGPtls, FALSE, TRUE))
							DoPaste(TRUE,hwndFocus);
						else
							DoFocus(TRUE,hwndFocus);
					}
					InPGPOperation = FALSE;
					break;
				}

				case ID_ENCRYPTSIGNWINDOW:
				{
					InPGPOperation = TRUE;
					if(DoCopy(hwnd,PGPsc,TRUE,&hwndFocus))
					{
						if(EncryptClipboard(hwnd, szApp, PGPsc,PGPtls, TRUE, TRUE))
							DoPaste(TRUE,hwndFocus);
						else
							DoFocus(TRUE,hwndFocus);
					}
					InPGPOperation = FALSE;
					break;
				}

				case ID_DECRYPTVERIFYWINDOW:
				{
					InPGPOperation = TRUE;
					if(DoCopy(hwnd,PGPsc,TRUE,&hwndFocus))
					{
						DecryptClipboard(hwnd, szApp, PGPsc,PGPtls);
						DoFocus(TRUE,hwndFocus);
					}
					InPGPOperation = FALSE;
					break;
				}

				case ID_WIPECLIP:
				{
					InPGPOperation = TRUE;
					ClipboardWipe(hwnd,PGPsc);
					InPGPOperation = FALSE;
					break;
				}
				
				case ID_VIEWCLIPBOARD:
				{
					InPGPOperation = TRUE;
					LaunchInternalViewer(PGPsc,hwnd);
					InPGPOperation = FALSE;
					break;
				}
	
				case ID_LAUNCHPGPKEYS:
				{
					InPGPOperation = TRUE;
					DoLaunchKeys(hwnd);
					InPGPOperation = FALSE;
					break;
				}

				case ID_LAUNCHPGPTOOLS:
				{
					InPGPOperation = TRUE;
					DoLaunchTools(hwnd);
					InPGPOperation = FALSE;
					break;
				}

				case ID_LAUNCHPGPDISK:
				{
					InPGPOperation = TRUE;
					DoLaunchDisk(hwnd);
					InPGPOperation = FALSE;
					break;
				}

				case ID_PGPNETHOSTS:
				{
					InPGPOperation = TRUE;
					PTNetLaunch(hwnd, PGPNET_HOSTPAGE);
					InPGPOperation = FALSE;
					break;
				}

				case ID_PGPNETLOG:
				{
					InPGPOperation = TRUE;
					PTNetLaunch(hwnd, PGPNET_LOGPAGE);
					InPGPOperation = FALSE;
					break;
				}

				case ID_PGPNETSTATUS:
				{
					InPGPOperation = TRUE;
					PTNetLaunch(hwnd, PGPNET_STATUSPAGE);
					InPGPOperation = FALSE;
					break;
				}

				case ID_PGPNETOPTIONS:
				{
					InPGPOperation = TRUE;
					PTNetLaunch(hwnd, PGPNET_OPTIONSHEET);
					InPGPOperation = FALSE;
					break;
				}

				case ID_PGPNETLOGON:
				{
					InPGPOperation = TRUE;
					PTSendLogOnOffMessage (hwnd, LOGON);
					InPGPOperation = FALSE;
					break;
				}

				case ID_PGPNETLOGOFF:
				{
					InPGPOperation = TRUE;
					PTSendLogOnOffMessage (hwnd, LOGOFF);
					InPGPOperation = FALSE;
					break;
				}

				case ID_PROPERTIES:
				{
					InPGPOperation = TRUE;
					PGPscPreferences(hwnd, PGPsc,PGPtls);
					InPGPOperation = FALSE;
					break;
				}

				case ID_QUIT_ENCLYPTOR:
				{
					if (CheckIfOKToClose(hwnd))
					{
						SetForegroundWindow(hwnd);
						PostMessage(hwnd, WM_CLOSE, 0, 0);
					}
					break;
				}

				case ID_HELP_TOPICS:
				{
					InPGPOperation = TRUE;
					PGPpath(HelpFile);
					strcat(HelpFile,"PGP.hlp");
					WinHelp(hwnd, HelpFile, HELP_FINDER, 0);
					InPGPOperation = FALSE;
					break;
				}
								
			}
			break;
		}
		
		case WM_ENDSESSION :
		{
			break;
		}

		case WM_CLOSE:
		{	
			KillTimer(hwnd, nLaunchKeysTimer);
			PTRemoveHotKeys(hwnd);
			PostQuitMessage(0);	
			return 0;
		}
	}
	return DefWindowProc(hwnd, msg, wParam, lParam);
}

void InsertOwnerDrawnMenuItem(HMENU hMenu,UINT pos,
							  UINT id,HMENU hSubMenu,PMENUINFO pmi)
{
	MENUITEMINFO mii;
	BOOL result;

	memset(&mii,0x00,sizeof(MENUITEMINFO));

	mii.cbSize=sizeof(MENUITEMINFO);
	mii.fMask=MIIM_TYPE|MIIM_DATA|MIIM_ID|MIIM_STATE|MIIM_SUBMENU;
	mii.fType=MFT_OWNERDRAW;
	mii.dwItemData=(DWORD)pmi;
	mii.wID=id;
	mii.fState=MFS_ENABLED;
	mii.hSubMenu=hSubMenu;

	result=InsertMenuItem(hMenu, 
		pos, 
		TRUE,  
		&mii); 
}

BOOL PopupTaskbarMenu(HWND hwndTarget, BOOL InPGPOperation)
{
	HMENU hMenu = NULL;
	HMENU hSubMenu = NULL;
	HMENU hMenuNet = NULL;
	HMENU hSubMenuNet = NULL;

	POINT pt;

	GetCursorPos( &pt );

	// If the cursor is at the top, we need to reverse the menu
	if(pt.y<200)
	{
		// load up menu
		hMenu = LoadMenu(g_hinst, MAKEINTRESOURCE(IDM_TASKBARMENUREV));
		hSubMenu = GetSubMenu(hMenu,0);

		// Make these owner drawn so we can get icons
		if (PGPnetExists) 
		{
			// load up PGPnets popup menu
			hMenuNet = LoadMenu(g_hinst, MAKEINTRESOURCE(IDM_PGPNETPOPUP));
			hSubMenuNet = GetSubMenu(hMenuNet,0);

			InsertOwnerDrawnMenuItem(
					hSubMenu,3,ID_LAUNCHPGPNET,hSubMenuNet,&miNet);
		}
		if (PGPdiskExists)
			InsertOwnerDrawnMenuItem(hSubMenu,3,ID_LAUNCHPGPDISK,NULL,&miDisk);
		if (PGPkeysExists)
			InsertOwnerDrawnMenuItem(hSubMenu,3,ID_LAUNCHPGPKEYS,NULL,&miKeys);
		if (PGPtoolsExists)
			InsertOwnerDrawnMenuItem(hSubMenu,3,ID_LAUNCHPGPTOOLS,NULL,&miTools);
	}
	else
	{
		// load up menu
		hMenu = LoadMenu(g_hinst, MAKEINTRESOURCE(IDM_TASKBARMENU));
		hSubMenu = GetSubMenu(hMenu,0);

		// Make these owner drawn so we can get icons
		if (PGPtoolsExists)
			InsertOwnerDrawnMenuItem(hSubMenu,5,ID_LAUNCHPGPTOOLS,NULL,&miTools);
		if (PGPkeysExists)
			InsertOwnerDrawnMenuItem(hSubMenu,5,ID_LAUNCHPGPKEYS,NULL,&miKeys);
		if (PGPdiskExists)
			InsertOwnerDrawnMenuItem(hSubMenu,5,ID_LAUNCHPGPDISK,NULL,&miDisk);
		if (PGPnetExists) 
		{
			// load up PGPnets popup menu
			hMenuNet = LoadMenu(g_hinst, MAKEINTRESOURCE(IDM_PGPNETPOPUP));
			hSubMenuNet = GetSubMenu(hMenuNet,0);

			InsertOwnerDrawnMenuItem(
					hSubMenu,5,ID_LAUNCHPGPNET,hSubMenuNet,&miNet);
		}
	}

	if(InPGPOperation || PTNetIsGUIDisabled ())
	{
		EnableMenuItem(hMenu, 
					   ID_ENCRYPTCLIPBOARD, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_SIGNCLIPBOARD, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_ENCRYPTSIGNCLIPBOARD, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_DECRYPTVERIFYCLIPBOARD, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_ENCRYPTWINDOW, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_SIGNWINDOW, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_ENCRYPTSIGNWINDOW, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_DECRYPTVERIFYWINDOW, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_PROPERTIES, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_VIEWCLIPBOARD, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_HELP_TOPICS, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_LAUNCHPGPKEYS, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_LAUNCHPGPDISK, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_LAUNCHPGPTOOLS, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_WIPECLIP, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_LAUNCHPGPTOOLS, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenu, 
					   ID_QUIT_ENCLYPTOR, 
					   MF_BYCOMMAND | MF_GRAYED);

		// PGPnet submenu
		EnableMenuItem(hMenuNet, 
					   ID_PGPNETSTATUS, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenuNet, 
					   ID_PGPNETLOG, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenuNet, 
					   ID_PGPNETHOSTS, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenuNet, 
					   ID_PGPNETOPTIONS, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenuNet, 
					   ID_PGPNETLOGON, 
					   MF_BYCOMMAND | MF_GRAYED);
		EnableMenuItem(hMenuNet, 
					   ID_PGPNETLOGOFF, 
					   MF_BYCOMMAND | MF_GRAYED);
	}
	else
	{
		if (PTNetIsLogonDisabled ())
		{
			EnableMenuItem(hMenuNet, 
					   ID_PGPNETLOGON, 
					   MF_BYCOMMAND | MF_GRAYED);
		}

		if (PTNetIsLogoffDisabled ())
		{
			EnableMenuItem(hMenuNet, 
					   ID_PGPNETLOGOFF, 
					   MF_BYCOMMAND | MF_GRAYED);
		}
	}

	//  Calls to SetForegroundWindow and PostMessage to fix a bug
    //  documented in PSS ID Number: Q135788
	SetForegroundWindow(hwndTarget); 
	TrackPopupMenu( hSubMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON, 
					pt.x, pt.y, 0, hwndTarget, NULL);
	PostMessage( hwndTarget, WM_NULL, 0, 0 ) ;
	// Above fixes "three clicks" problem  -wjb

	DestroyMenu(hMenu);

	return TRUE;
}

/*__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 + -