#include "common.h" #include "options.h" #include "resource.h" Options options = {0}; void LoadOptions() { DBVARIANT dbv; if(!DBGetContactSettingTString(0, MODULE, "email", &dbv)) { _tcsncpy(options.email, dbv.ptszVal, 256); DBFreeVariant(&dbv); } if(!DBGetContactSettingTString(0, MODULE, "pw", &dbv)) { _tcsncpy(options.pw, dbv.ptszVal, 256); DBFreeVariant(&dbv); } } void SaveOptions() { DBWriteContactSettingTString(0, MODULE, "email", options.email); DBWriteContactSettingTString(0, MODULE, "pw", options.pw); } BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { static HANDLE hItemAll; switch ( msg ) { case WM_INITDIALOG: TranslateDialogDefault( hwndDlg ); SetDlgItemText(hwndDlg, IDC_ED_EMAIL, options.email); SetDlgItemText(hwndDlg, IDC_ED_PW, options.pw); return FALSE; case WM_COMMAND: if ( HIWORD( wParam ) == EN_CHANGE && ( HWND )lParam == GetFocus()) { switch( LOWORD( wParam )) { case IDC_ED_EMAIL: case IDC_ED_PW: SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } break; } break; case WM_NOTIFY: switch(((LPNMHDR)lParam)->idFrom) { case 0: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: GetDlgItemText(hwndDlg, IDC_ED_EMAIL, options.email, 256); GetDlgItemText(hwndDlg, IDC_ED_PW, options.pw, 256); SaveOptions(); } break; } break; } return 0; } int OptInit(WPARAM wParam, LPARAM lParam) { OPTIONSDIALOGPAGE odp = { 0 }; odp.cbSize = sizeof(odp); odp.flags = ODPF_BOLDGROUPS; odp.flags |= ODPF_TCHAR; odp.position = -790000000; odp.hInstance = hInst; odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT1); odp.ptszTitle = TranslateT(MODULE); odp.ptszGroup = TranslateT("Network"); odp.ptszTab = TranslateT("Account"); odp.nIDBottomSimpleControl = 0; odp.pfnDlgProc = DlgProcOpts; CallService( MS_OPT_ADDPAGE, wParam,( LPARAM )&odp ); return 0; } HANDLE hEventOptInit; void InitOptions() { hEventOptInit = HookEvent(ME_OPT_INITIALISE, OptInit); LoadOptions(); } void DeinitOptions() { UnhookEvent(hEventOptInit); }