📄 unknownwndproc.cpp
字号:
tbb[2].dwData = 0;
tbb[2].iString = nSignSTR;
plugin->bEncrypt = ByDefaultEncrypt(plugin->memoryMgr);
plugin->bSign = ByDefaultSign(plugin->memoryMgr);
SetTimer(hDlg, PASTE_REPLY_TIMER, 250, 0);
}
else
{
int nDecryptBMP;
HBITMAP hbmpDecrypt;
int nDecryptSTR = -1;
if (!(plugin->bOE5))
{
UIGetString(szText, 254, IDS_MENU_DECRYPT);
AppendMenu(plugin->hPGPMenu, MF_STRING, IDC_DECRYPT, szText);
AppendMenu(plugin->hPGPMenu, MF_SEPARATOR, NULL, NULL);
}
if (plugin->bOE5)
{
if (iNumBits <= 8)
hbmpDecrypt = LoadBitmap(hInst,
MAKEINTRESOURCE(IDB_DECRYPTOFF4));
else
hbmpDecrypt = LoadBitmap(hInst,
MAKEINTRESOURCE(IDB_DECRYPTOFF));
}
else
hbmpDecrypt = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_DECRYPT));
nDecryptBMP = ImageList_AddMasked(hilToolbar, hbmpDecrypt,
TRANSPARENT_COLOR);
DeleteObject(hbmpDecrypt);
plugin->nDecryptImage = nDecryptBMP;
if (plugin->bOE5)
{
if (iNumBits <= 8)
hbmpDecrypt = LoadBitmap(hInst,
MAKEINTRESOURCE(IDB_DECRYPTLARGE4));
else
hbmpDecrypt = LoadBitmap(hInst,
MAKEINTRESOURCE(IDB_DECRYPTLARGE));
ImageList_AddMasked(hilHotToolbar, hbmpDecrypt,
TRANSPARENT_COLOR);
DeleteObject(hbmpDecrypt);
UIGetString(szText, 254, IDS_TOOLTIP_DECRYPT);
nDecryptSTR = SendMessage(plugin->hToolbar, TB_ADDSTRING, 0,
(LPARAM) szText);
plugin->nDecryptString = nDecryptSTR;
}
tbb[1].iBitmap = nDecryptBMP;
tbb[1].idCommand = IDC_DECRYPT;
tbb[1].fsState = TBSTATE_ENABLED;
tbb[1].fsStyle = TBSTYLE_BUTTON;
tbb[1].dwData = 0;
tbb[1].iString = nDecryptSTR;
tbb[2].iBitmap = -1;
tbb[2].idCommand = -1;
tbb[2].fsState = TBSTATE_HIDDEN;
tbb[2].fsStyle = TBSTYLE_SEP;
tbb[2].dwData = 0;
tbb[2].iString = -1;
if (AutoDecrypt(plugin->memoryMgr))
SetTimer(hDlg, AUTO_DECRYPT_TIMER, 500, 0);
}
UIGetString(szText, 254, IDS_MENU_PREFS);
AppendMenu(plugin->hPGPMenu, MF_STRING, IDC_PREFS, szText);
UIGetString(szText, 254, IDS_MENU_PGPKEYS);
AppendMenu(plugin->hPGPMenu, MF_STRING, IDC_PGPKEYS, szText);
if (plugin->bOE5)
{
if (iNumBits <= 8)
hbmpPGPkeys = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_PGPKEYSOFF4));
else
hbmpPGPkeys = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_PGPKEYSOFF));
}
else
{
DrawMenuBar(hDlg);
hbmpPGPkeys = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_PGPKEYS));
}
nPGPkeysBMP = ImageList_AddMasked(hilToolbar, hbmpPGPkeys,
TRANSPARENT_COLOR);
DeleteObject(hbmpPGPkeys);
plugin->nPGPKeysImage = nPGPkeysBMP;
SendMessage(plugin->hToolbar, TB_SETIMAGELIST, 0, (LPARAM) hilToolbar);
if (plugin->bOE5)
{
if (iNumBits <= 8)
hbmpPGPkeys = LoadBitmap(hInst,
MAKEINTRESOURCE(IDB_PGPKEYSLARGE4));
else
hbmpPGPkeys = LoadBitmap(hInst,
MAKEINTRESOURCE(IDB_PGPKEYSLARGE));
ImageList_AddMasked(hilHotToolbar, hbmpPGPkeys, TRANSPARENT_COLOR);
DeleteObject(hbmpPGPkeys);
UIGetString(szText, 254, IDS_TOOLTIP_PGPKEYS);
nPGPkeysSTR = SendMessage(plugin->hToolbar, TB_ADDSTRING, 0,
(LPARAM) szText);
plugin->nPGPKeysString = nPGPkeysSTR;
}
tbb[0].iBitmap = -1;
tbb[0].idCommand = -1;
tbb[0].fsState = TBSTATE_ENABLED;
tbb[0].fsStyle = TBSTYLE_SEP;
tbb[0].dwData = 0;
tbb[0].iString = -1;
tbb[3].iBitmap = nPGPkeysBMP;
tbb[3].idCommand = IDC_PGPKEYS;
tbb[3].fsState = TBSTATE_ENABLED;
tbb[3].fsStyle = TBSTYLE_BUTTON;
tbb[3].dwData = 0;
tbb[3].iString = nPGPkeysSTR;
SendMessage(plugin->hToolbar, TB_ADDBUTTONS, 4, (LPARAM) &tbb);
if (plugin->bOE5)
{
int nIndex;
TBBUTTON tb;
if (bSend)
nIndex = SendMessage(plugin->hToolbar, TB_COMMANDTOINDEX,
IDC_ENCRYPT_PGP, 0);
else
nIndex = SendMessage(plugin->hToolbar, TB_COMMANDTOINDEX,
IDC_DECRYPT, 0);
SendMessage(plugin->hToolbar, TB_GETBUTTON, nIndex - 2,
(LPARAM) &tb);
if (tb.fsStyle & TBSTYLE_SEP)
SendMessage(plugin->hToolbar, TB_DELETEBUTTON, nIndex - 2, 0);
if (nY > 26)
{
SendMessage(plugin->hToolbar, TB_SETBUTTONSIZE, 0,
MAKELONG(nX, nY));
plugin->nButtonSizeX = nX;
plugin->nButtonSizeY = nY;
}
if (GetProp(plugin->hToolbar, "oldproc") == NULL)
{
// Save away toolbar parent window proc
SetProp(plugin->hToolbar, "oldproc",
(HANDLE) GetWindowLong(plugin->hToolbar, GWL_WNDPROC));
// Save plugin pointer
SetProp(plugin->hToolbar, PLUGIN_INFO_PROP, (HANDLE) plugin);
// Subclass toolbar window
SetWindowLong(plugin->hToolbar, GWL_WNDPROC,
(DWORD) ToolbarWndProc);
}
if (GetProp(hReBar, "oldproc") == NULL)
{
// Save away toolbar parent window proc
SetProp(hReBar, "oldproc",
(HANDLE) GetWindowLong(hReBar, GWL_WNDPROC));
// Save plugin pointer
SetProp(hReBar, PLUGIN_INFO_PROP, (HANDLE) plugin);
// Subclass toolbar parent window
if (bSend)
SetWindowLong(hReBar, GWL_WNDPROC,
(DWORD) SendToolbarParentWndProc);
else
SetWindowLong(hReBar, GWL_WNDPROC,
(DWORD) ReadToolbarParentWndProc);
}
}
if (bSend && !(plugin->bOE5))
SetTimer(hDlg, CORRECT_TOOLBAR_TIMER, 250, 0);
return;
}
static LRESULT CALLBACK ToolbarWndProc(HWND hDlg,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
WNDPROC lpOldProc;
PluginInfo *plugin;
UINT nState;
UINT nOldState;
LRESULT lResult;
BOOL bSend;
lpOldProc = (WNDPROC)GetProp( hDlg, "oldproc" );
plugin = GetPluginInfo(hDlg);
bSend = (BOOL) GetProp(hDlg, TOOLBAR_TYPE_PROP);
if ((msg == WM_USER+59) && (lParam == 0x00460000) &&
(plugin->nButtonSizeX > 0) && (plugin->nButtonSizeY > 0))
{
DWORD dwSize;
INT nX;
INT nY;
dwSize = SendMessage(hDlg, TB_GETBUTTONSIZE, 0, 0);
nX = LOWORD(dwSize);
nY = HIWORD(dwSize);
if (!dwSize)
return CallWindowProc(lpOldProc, hDlg, msg, wParam, lParam);
if ((nX != plugin->nButtonSizeX) ||
(nY != plugin->nButtonSizeY))
{
lResult = CallWindowProc(lpOldProc, hDlg, msg, wParam, lParam);
SendMessage(hDlg, TB_SETBUTTONSIZE, 0,
MAKELONG(plugin->nButtonSizeX, plugin->nButtonSizeY));
return lResult;
}
}
lResult = CallWindowProc(lpOldProc, hDlg, msg, wParam, lParam);
nState = CallWindowProc(lpOldProc, hDlg, TB_GETSTATE, IDC_PGPKEYS, 0);
if (!(nState & TBSTATE_ENABLED))
{
nState |= TBSTATE_ENABLED;
CallWindowProc(lpOldProc, hDlg, TB_SETSTATE, IDC_PGPKEYS,
MAKELONG(nState, 0));
}
if (bSend)
{
nState = CallWindowProc(lpOldProc, hDlg, TB_GETSTATE, IDC_SIGN_PGP,
0);
nOldState = nState;
if (!(nState & TBSTATE_ENABLED))
nState |= TBSTATE_ENABLED;
if (plugin->bSign)
{
if (!(nState & TBSTATE_CHECKED))
nState |= TBSTATE_CHECKED;
}
else
{
if (nState & TBSTATE_CHECKED)
nState ^= TBSTATE_CHECKED;
}
if (nState != nOldState)
{
CallWindowProc(lpOldProc, hDlg, TB_SETSTATE, IDC_SIGN_PGP,
MAKELONG(nState, 0));
}
nState = CallWindowProc(lpOldProc, hDlg, TB_GETSTATE, IDC_ENCRYPT_PGP,
0);
nOldState = nState;
if (!(nState & TBSTATE_ENABLED))
nState |= TBSTATE_ENABLED;
if (plugin->bEncrypt)
{
if (!(nState & TBSTATE_CHECKED))
nState |= TBSTATE_CHECKED;
}
else
{
if (nState & TBSTATE_CHECKED)
nState ^= TBSTATE_CHECKED;
}
if (nState != nOldState)
{
CallWindowProc(lpOldProc, hDlg, TB_SETSTATE, IDC_ENCRYPT_PGP,
MAKELONG(nState, 0));
}
}
else
{
TBBUTTON tb;
nState = CallWindowProc(lpOldProc, hDlg, TB_GETSTATE, IDC_DECRYPT, 0);
if (!(nState & TBSTATE_ENABLED))
{
nState |= TBSTATE_ENABLED;
CallWindowProc(lpOldProc, hDlg, TB_SETSTATE, IDC_DECRYPT,
MAKELONG(nState, 0));
}
nState = CallWindowProc(lpOldProc, hDlg, TB_COMMANDTOINDEX,
IDC_DECRYPT, 0);
CallWindowProc(lpOldProc, hDlg, TB_GETBUTTON, nState - 2,
(LPARAM) &tb);
if (tb.fsStyle & TBSTYLE_SEP)
CallWindowProc(lpOldProc, hDlg, TB_DELETEBUTTON, nState - 2, 0);
}
return lResult;
}
/*__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 + -