diff options
author | mataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-11-22 18:30:08 +0000 |
---|---|---|
committer | mataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-11-22 18:30:08 +0000 |
commit | 4101ee8ff9bc818f40dc0173b1434761f187597f (patch) | |
tree | 15ace4a23c2d13b1c4b506a54887b1ec196ee007 /GnuPG/userinfo.cpp | |
parent | da1c34bde32e040a0a431ffb809c3b1e425dc558 (diff) |
added GnuPG
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@197 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
Diffstat (limited to 'GnuPG/userinfo.cpp')
-rw-r--r-- | GnuPG/userinfo.cpp | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/GnuPG/userinfo.cpp b/GnuPG/userinfo.cpp new file mode 100644 index 0000000..badda80 --- /dev/null +++ b/GnuPG/userinfo.cpp @@ -0,0 +1,104 @@ +#include "gnupgplugin.h"
+
+int UserInfoInit(WPARAM wparam, LPARAM lparam)
+{
+ OPTIONSDIALOGPAGE odp;
+
+ ZeroMemory(&odp,sizeof(odp));
+ odp.cbSize=sizeof(odp);
+ odp.hInstance=dllinstance;
+ odp.pszTemplate=(char*)MAKEINTRESOURCE(IDD_USERINFO_DLG);
+ odp.pfnDlgProc=UserInfoDialogProcedure;
+ odp.pszTitle=Translate(txtgnupgplugin);
+ CallService(MS_USERINFO_ADDPAGE,wparam,(LPARAM)&odp);
+
+ return 0;
+}
+
+BOOL CALLBACK UserInfoDialogProcedure(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)
+{
+ char *pos;
+ HANDLE hcontact;
+ char buffer[keybuffersize];
+ char keyuserid[keyuseridsize];
+ gpgResult gpgresult;
+ DBVARIANT dbv;
+ int error;
+
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hdlg);
+
+ hcontact=(HANDLE)lparam;
+ if (hcontact==NULL)
+ {
+ ShowWindow(GetDlgItem(hdlg,IDC_KEYRECEIVED_STATIC),SW_HIDE);
+ ShowWindow(GetDlgItem(hdlg,IDC_KEYRECEIVED_EDIT),SW_HIDE);
+ ShowWindow(GetDlgItem(hdlg,IDC_KEY_EDIT),SW_HIDE);
+ ShowWindow(GetDlgItem(hdlg,IDC_IMPORT_BTN),SW_HIDE);
+ }
+ break;
+ case WM_NOTIFY:
+ switch (((LPNMHDR)lparam)->code)
+ {
+ case PSN_INFOCHANGED:
+ hcontact=(HANDLE)((PSHNOTIFY *)lparam)->lParam;
+
+ error=DBGetContactSetting(hcontact,pluginid,dbkeyuserid,&dbv);
+ if (!error) strcpy(keyuserid,dbv.pszVal);
+ else strcpy(keyuserid,"");
+ DBFreeVariant(&dbv);
+
+ if (strlen(keyuserid)!=0)
+ {
+ pos=getNextPart(buffer,keyuserid,txtidseparator);
+ SetDlgItemText(hdlg,IDC_KEYID_EDIT,(LPCTSTR)buffer);
+ getLastPart(buffer,pos);
+ SetDlgItemText(hdlg,IDC_USERID_EDIT,(LPCTSTR)buffer);
+ }
+ else
+ {
+ SetDlgItemText(hdlg,IDC_KEYID_EDIT,(LPCTSTR)Translate(txtnone));
+ EnableWindow(GetDlgItem(hdlg,IDC_KEYID_EDIT),FALSE);
+ SetDlgItemText(hdlg,IDC_USERID_EDIT,(LPCTSTR)Translate(txtnone));
+ EnableWindow(GetDlgItem(hdlg,IDC_USERID_EDIT),FALSE);
+ }
+
+ error=DBGetContactSetting(hcontact,pluginid,dbkeymodified,&dbv);
+ if (!error) strcpy(buffer,dbv.pszVal);
+ else strcpy(buffer,"");
+ DBFreeVariant(&dbv);
+ if (strlen(buffer)==0)
+ {
+ SetDlgItemText(hdlg,IDC_KEYRECEIVED_EDIT,(LPCTSTR)Translate(txtnone));
+ EnableWindow(GetDlgItem(hdlg,IDC_KEYRECEIVED_EDIT),FALSE);
+ }
+ else SetDlgItemText(hdlg,IDC_KEYRECEIVED_EDIT,(LPCTSTR)buffer);
+
+ error=DBGetContactSetting(hcontact,pluginid,dbkey,&dbv);
+ if (!error) strcpy(buffer,dbv.pszVal);
+ else strcpy(buffer,"");
+ DBFreeVariant(&dbv);
+
+ SetDlgItemText(hdlg,IDC_KEY_EDIT,(LPCTSTR)buffer);
+ if (strlen(buffer)==0)
+ EnableWindow(GetDlgItem(hdlg,IDC_IMPORT_BTN),FALSE);
+ break;
+ }
+ break;
+ case WM_COMMAND:
+ switch (LOWORD(wparam))
+ {
+ case IDC_IMPORT_BTN:
+ GetDlgItemText(hdlg,IDC_KEY_EDIT,(LPTSTR)buffer,sizeof(buffer));
+ gpgresult=gpgImportPublicKey(buffer);
+
+ if (gpgresult!=gpgSuccess)
+ ErrorMessage(txterror,txtimportpublickeyfailed,txtverifyoptions);
+ break;
+ }
+ break;
+ }
+ return 0;
+}
|