#include "config.h" #include "common.h" #ifdef WIN32 #include "resource.h" #endif char default_email[1000]; char default_basedir[1000]; int default_ftpctrlport; int default_passivemode; int default_proxytype; char default_proxyhost[1024]; int default_proxyport; int default_resumegetmode; /* 1(on) or 0(off) */ extern HINSTANCE _hInst; #define APP_REGISTRY_PATH "HKEY_CURRENT_USER\\Software\\ArchiverDLL\\FTP32" #define COMMON_REGISTRY_PATH "HKEY_CURRENT_USER\\Software\\ArchiverDLL\\Common" int load_setting(void) { strcpy(default_email,""); strcpy(default_basedir,""); default_ftpctrlport = 21; default_passivemode = 2; default_proxytype = 0; default_proxyport = 21; strcpy(default_proxyhost,""); default_resumegetmode = 0; #ifdef WIN32 { HKEY hKey; /* if(RegOpenKey2(COMMON_REGISTRY_PATH,&hKey)==-1){return -1;} RegGetStrKey(hKey,"DefaultDir",default_basedir,300,""); RegCloseKey(hKey); */ if(RegOpenKey2(APP_REGISTRY_PATH,&hKey)==-1){return -1;} RegGetStrKey(hKey,"EMailAddress",default_email,300,default_email); RegGetStrKey(hKey,"DefaultDir",default_basedir,300,default_basedir); default_ftpctrlport = RegGetIntKey(hKey,"FtpCtrlPort",default_ftpctrlport); default_passivemode = RegGetIntKey(hKey,"PassiveMode",default_passivemode); default_proxytype = RegGetIntKey(hKey,"ProxyType",default_proxytype); default_proxyport = RegGetIntKey(hKey,"ProxyPort",default_proxyport); RegGetStrKey(hKey,"ProxyHost",default_proxyhost,300,default_proxyhost); default_resumegetmode = RegGetIntKey(hKey,"ResumeGetMode",default_resumegetmode); RegCloseKey(hKey); } #else return 0; #endif } int save_setting(void) { #ifdef WIN32 int ret; HKEY hKey; ret = RegCreateKey2(APP_REGISTRY_PATH,&hKey); if(ret==-1){return -1;} RegSetStrKey(hKey,"EMailAddress",default_email); RegSetStrKey(hKey,"DefaultDir",default_basedir); RegSetIntKey(hKey,"FtpCtrlPort",default_ftpctrlport); RegSetIntKey(hKey,"PassiveMode",default_passivemode); RegSetIntKey(hKey,"ProxyType",default_proxytype); RegSetIntKey(hKey,"ProxyPort",default_proxyport); RegSetStrKey(hKey,"ProxyHost",default_proxyhost); RegSetIntKey(hKey,"ResumeGetMode",default_resumegetmode); RegCloseKey(hKey); #endif return 0; } #ifdef WIN32 static BOOL CALLBACK ConfigDialog(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) { switch(message){ case WM_COMMAND: switch(LOWORD(wParam)){ case IDCANCEL: EndDialog(hwnd,0); return 1; break; case IDOK: GetDlgItemText(hwnd,IDC_EDIT_EMAIL,default_email,1000); GetDlgItemText(hwnd,IDC_EDIT_DOWNLOADFOLDER,default_basedir,1000); default_ftpctrlport = GetDlgItemInt(hwnd,IDC_EDIT_FTPCTRLPORT,NULL,TRUE); if(SendDlgItemMessage(hwnd,IDC_RADIO_PASSIVE1,BM_GETCHECK,0,0)){default_passivemode = 0;} if(SendDlgItemMessage(hwnd,IDC_RADIO_PASSIVE2,BM_GETCHECK,0,0)){default_passivemode = 1;} if(SendDlgItemMessage(hwnd,IDC_RADIO_PASSIVE3,BM_GETCHECK,0,0)){default_passivemode = 2;} if(SendDlgItemMessage(hwnd,IDC_RADIO_PROXYTYPE0,BM_GETCHECK,0,0)){default_proxytype = 0;} if(SendDlgItemMessage(hwnd,IDC_RADIO_PROXYTYPE1,BM_GETCHECK,0,0)){default_proxytype = 1;} if(SendDlgItemMessage(hwnd,IDC_RADIO_PROXYTYPE2,BM_GETCHECK,0,0)){default_proxytype = 2;} if(SendDlgItemMessage(hwnd,IDC_RADIO_PROXYTYPE3,BM_GETCHECK,0,0)){default_proxytype = 3;} default_proxyport = GetDlgItemInt(hwnd,IDC_EDIT_PROXYPORT,NULL,TRUE); GetDlgItemText(hwnd,IDC_EDIT_PROXYHOST,default_proxyhost,1000); default_resumegetmode = SendDlgItemMessage(hwnd,IDC_CHECK_RESUMEGET,BM_GETCHECK,0,0); EndDialog(hwnd,1); return 1; break; } break; case WM_INITDIALOG: SetDlgItemText(hwnd,IDC_EDIT_EMAIL,default_email); SetDlgItemText(hwnd,IDC_EDIT_DOWNLOADFOLDER,default_basedir); SetDlgItemInt(hwnd,IDC_EDIT_FTPCTRLPORT,default_ftpctrlport,TRUE); if(default_passivemode == 0)SendDlgItemMessage(hwnd,IDC_RADIO_PASSIVE1,BM_SETCHECK,1,0); if(default_passivemode == 1)SendDlgItemMessage(hwnd,IDC_RADIO_PASSIVE2,BM_SETCHECK,1,0); if(default_passivemode == 2)SendDlgItemMessage(hwnd,IDC_RADIO_PASSIVE3,BM_SETCHECK,1,0); if(default_proxytype == 0)SendDlgItemMessage(hwnd,IDC_RADIO_PROXYTYPE0,BM_SETCHECK,1,0); if(default_proxytype == 1)SendDlgItemMessage(hwnd,IDC_RADIO_PROXYTYPE1,BM_SETCHECK,1,0); if(default_proxytype == 2)SendDlgItemMessage(hwnd,IDC_RADIO_PROXYTYPE2,BM_SETCHECK,1,0); if(default_proxytype == 3)SendDlgItemMessage(hwnd,IDC_RADIO_PROXYTYPE3,BM_SETCHECK,1,0); SetDlgItemInt(hwnd,IDC_EDIT_PROXYPORT,default_proxyport,TRUE); SetDlgItemText(hwnd,IDC_EDIT_PROXYHOST,default_proxyhost); if(default_resumegetmode){SendDlgItemMessage(hwnd,IDC_CHECK_RESUMEGET,BM_SETCHECK,1,0);} /* SendMessage(hwnd,STM_SETICON,LoadIcon(_hInst,MAKEINTRESOURCE(IDI_ICON_MAIN)),0); */ return 1; break; case WM_DESTROY: break; } return 0; } #endif int DisplayConfigDialog(HINSTANCE hInst,HWND hwnd) { #ifdef WIN32 return DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG_CONFIG),hwnd,ConfigDialog); #else return 0; #endif }