#include "gnupgplugin.h" char *column[]={"Contact","Key and User ID"}; /*lang*/ int columnwidth[]={150, 368}; int OptionsInit(WPARAM wparam, LPARAM lparam) { OPTIONSDIALOGPAGE odp; ZeroMemory(&odp,sizeof(odp)); odp.cbSize=sizeof(odp); odp.hInstance=dllinstance; odp.pszGroup=Translate(txtplugins); odp.pszTitle=Translate(txtoptions); odp.pszTemplate=(char*)MAKEINTRESOURCE(IDD_OPTIONS_DLG); odp.pfnDlgProc=OptionsDialogProcedure; odp.expertOnlyControls=NULL; odp.nExpertOnlyControls=0; odp.flags=ODPF_BOLDGROUPS; CallService(MS_OPT_ADDPAGE,wparam,(LPARAM)&odp); ZeroMemory(&odp,sizeof(odp)); odp.cbSize=sizeof(odp); odp.hInstance=dllinstance; odp.pszGroup=Translate(txtplugins); odp.pszTitle=Translate(txtexpertoptions); odp.pszTemplate=(char*)MAKEINTRESOURCE(IDD_EXPERTOPTIONS_DLG); odp.pfnDlgProc=ExpertOptionsDialogProcedure; odp.expertOnlyControls=NULL; odp.nExpertOnlyControls=0; odp.flags=ODPF_BOLDGROUPS|ODPF_EXPERTONLY; CallService(MS_OPT_ADDPAGE,wparam,(LPARAM)&odp); return 0; } void fillKeyDropdown(HWND hdlg, int atype) { int index; HWND hwnd; if (atype==publickeyuserid) hwnd=GetDlgItem(hdlg,IDC_PUBLICKEY_DDOWN); else hwnd=GetDlgItem(hdlg,IDC_SECRETKEY_DDOWN); SendMessage(hwnd,CB_RESETCONTENT,0,0); SendMessage(hwnd,CB_ADDSTRING,0,(LPARAM)Translate(txtnone)); SendMessage(hwnd,CB_SELECTSTRING,-1,(LPARAM)Translate(txtnone)); for (index=0; indexcode) { case LVN_ITEMCHANGED: nmlv=(NM_LISTVIEW *)lparam; if (nmlv->uNewState&LVIS_SELECTED!=0) synchronizePublicKeyUserID(hdlg); break; case PSN_APPLY: // eingaben in der datenbank abspeichern GetDlgItemText(hdlg,IDC_GPGEXECUTABLE_EDIT,(LPTSTR)gpgExecutable,fullfilenamesize); DBWriteContactSettingString(NULL,pluginid,dbexecutable,gpgExecutable); GetDlgItemText(hdlg,IDC_GPGHOME_EDIT,(LPTSTR)gpgHomeDirectory,argumentsize); DBWriteContactSettingString(NULL, pluginid, dbhomedirectory, gpgHomeDirectory); hwnd=GetDlgItem(hdlg, IDC_KEY_LIST); count=ListView_GetItemCount(hwnd); for (index=0; indexcode) { case PSN_APPLY: storepassphraseschecked=IsDlgButtonChecked(hdlg, IDC_STOREPASSPHRASES_CBOX); DBWriteContactSettingDword(NULL, pluginid, dbstorepassphrases, storepassphraseschecked); autoimportpublickeyschecked=IsDlgButtonChecked(hdlg, IDC_IMPORTPUBLICKEYS_CBOX); DBWriteContactSettingDword(NULL, pluginid, dbautoimportpublickeys, autoimportpublickeyschecked); // alle passphrasen loeschen if(storepassphraseschecked==BST_UNCHECKED) { releasePassphrases(); initPassphrases(); } GetDlgItemText(hdlg,IDC_STARTTAG_EDIT,(LPTSTR)starttag,sizeof(starttag)); unquoteEscapeSequences(starttag); DBWriteContactSettingString(NULL,pluginid,dbstarttag,starttag); GetDlgItemText(hdlg,IDC_ENDTAG_EDIT,(LPTSTR)endtag,sizeof(endtag)); unquoteEscapeSequences(endtag); DBWriteContactSettingString(NULL,pluginid,dbendtag,endtag); GetDlgItemText(hdlg,IDC_LISTPUBLICKEYS_EDIT,(LPTSTR)gpgArgsListPublicKeys,argumentsize); DBWriteContactSettingString(NULL,pluginid,dblistpublickeys,gpgArgsListPublicKeys); GetDlgItemText(hdlg,IDC_LISTSECRETKEYS_EDIT,(LPTSTR)gpgArgsListSecretKeys,argumentsize); DBWriteContactSettingString(NULL,pluginid,dblistsecretkeys,gpgArgsListSecretKeys); GetDlgItemText(hdlg,IDC_IMPORTPUBLICKEY_EDIT,(LPTSTR)gpgArgsImportPublicKey,argumentsize); DBWriteContactSettingString(NULL,pluginid,dbimportpublickey,gpgArgsImportPublicKey); GetDlgItemText(hdlg,IDC_EXPORTPUBLICKEY_EDIT,(LPTSTR)gpgArgsExportPublicKey,argumentsize); DBWriteContactSettingString(NULL,pluginid,dbexportpublickey,gpgArgsExportPublicKey); GetDlgItemText(hdlg,IDC_DETECTUSERID_EDIT,(LPTSTR)gpgArgsDetectUserID,argumentsize); DBWriteContactSettingString(NULL,pluginid,dbdetectuserid,gpgArgsDetectUserID); GetDlgItemText(hdlg,IDC_ENCRYPT_EDIT,(LPTSTR)gpgArgsEncrypt,argumentsize); DBWriteContactSettingString(NULL,pluginid,dbencrypt,gpgArgsEncrypt); GetDlgItemText(hdlg,IDC_DECRYPT_EDIT,(LPTSTR)gpgArgsDecrypt,argumentsize); DBWriteContactSettingString(NULL,pluginid,dbdecrypt,gpgArgsDecrypt); GetDlgItemText(hdlg,IDC_TEMPDIR_EDIT,(LPTSTR)gpgTempdir,fullfilenamesize); DBWriteContactSettingString(NULL,pluginid,dbtempdir,gpgTempdir); loggingonchecked=IsDlgButtonChecked(hdlg,IDC_LOGGINGON_CBOX); DBWriteContactSettingDword(NULL,pluginid,dbloggingon,loggingonchecked); GetDlgItemText(hdlg,IDC_LOGFILE_EDIT,(LPTSTR)logfile,fullfilenamesize); DBWriteContactSettingString(NULL,pluginid,dblogfile,logfile); break; } break; case WM_COMMAND: if (GetFocus()==(HWND)lparam) { if((HIWORD(wparam)==EN_CHANGE) // text verändert ||((HIWORD(wparam)==BN_CLICKED)&&(LOWORD(wparam)==IDC_STOREPASSPHRASES_CBOX)) // check box ||((HIWORD(wparam)==BN_CLICKED)&&(LOWORD(wparam)==IDC_IMPORTPUBLICKEYS_CBOX)) // check box ||((HIWORD(wparam)==BN_CLICKED)&&(LOWORD(wparam)==IDC_LOGGINGON_CBOX))) // check box SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0); // aktiviere apply button } switch (LOWORD(wparam)) { case IDC_RESET_BTN: // restaurieren der default werte strcpy(gpgArgsListPublicKeys, txtgpgargslistpublickeys); strcpy(gpgArgsListSecretKeys, txtgpgargslistsecretkeys); strcpy(gpgArgsImportPublicKey, txtgpgargsimportpublickey); strcpy(gpgArgsExportPublicKey, txtgpgargsexportpublickey); strcpy(gpgArgsDetectUserID, txtgpgargsdetectuserid); strcpy(gpgArgsEncrypt, txtgpgargsencrypt); strcpy(gpgArgsDecrypt, txtgpgargsdecrypt); strcpy(gpgTempdir, txtgpgtempdir); // dialog aktualisieren SetDlgItemText(hdlg,IDC_LISTPUBLICKEYS_EDIT,(LPCTSTR)gpgArgsListPublicKeys); SetDlgItemText(hdlg,IDC_LISTSECRETKEYS_EDIT,(LPCTSTR)gpgArgsListSecretKeys); SetDlgItemText(hdlg,IDC_IMPORTPUBLICKEY_EDIT,(LPCTSTR)gpgArgsImportPublicKey); SetDlgItemText(hdlg,IDC_EXPORTPUBLICKEY_EDIT,(LPCTSTR)gpgArgsExportPublicKey); SetDlgItemText(hdlg,IDC_DETECTUSERID_EDIT,(LPCTSTR)gpgArgsDetectUserID); SetDlgItemText(hdlg,IDC_ENCRYPT_EDIT,(LPCTSTR)gpgArgsEncrypt); SetDlgItemText(hdlg,IDC_DECRYPT_EDIT,(LPCTSTR)gpgArgsDecrypt); SetDlgItemText(hdlg,IDC_TEMPDIR_EDIT,(LPCTSTR)gpgTempdir); SendMessage(GetParent(hdlg),PSM_CHANGED,0,0); // aktiviere apply button break; } break; } return 0; }