📄 enclyptorproc.c
字号:
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 + -