BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { // We use the dialog-box's USERDATA to store a _this pointer // This is set only once WM_INITDIALOG has been recieved, though! // VNCOptions *_this = (VNCOptions *) GetWindowLong(hwndDlg, GWL_USERDATA); switch (uMsg) { case WM_INITDIALOG: { InitCommonControls(); m_hParent = hwndDlg; m_hTab = GetDlgItem(hwndDlg, IDC_TAB); TCITEM item; item.mask = TCIF_TEXT; item.pszText="Network"; TabCtrl_InsertItem(m_hTab, 0, &item); item.pszText = "Security"; TabCtrl_InsertItem(m_hTab, 1, &item); item.pszText = "Input/FileTransfer"; TabCtrl_InsertItem(m_hTab, 2, &item); item.pszText = "Connections"; TabCtrl_InsertItem(m_hTab, 3, &item); item.pszText = "Screen Capture"; TabCtrl_InsertItem(m_hTab, 4, &item); item.pszText = "Misc/logging"; //TabCtrl_InsertItem(m_hTab, 5, &item); //item.pszText = "Create SFX"; TabCtrl_InsertItem(m_hTab, 6, &item); item.pszText = "Trouble Shooting"; hTab0dialog = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPTION1), hwndDlg, (DLGPROC)DlgProcOptions1, NULL); hTab1dialog = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPTION2), hwndDlg, (DLGPROC)security, NULL); hTab2dialog = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPTION3), hwndDlg, (DLGPROC)DlgProcOFT, NULL); hTab3dialog = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPTION4), hwndDlg, (DLGPROC)DlgProcCON, NULL); hTab4dialog = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPTION5), hwndDlg, (DLGPROC)DlgProcCAP, NULL); hTab5dialog = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPTION7), hwndDlg, (DLGPROC)DlgProcMISC, NULL); hTab6dialog = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPTION8), hwndDlg, (DLGPROC)DlgProcSFX, NULL); hTab7dialog = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPTION9), hwndDlg, (DLGPROC)DlgProcSFX2, NULL); // Position child dialogs, to fit the Tab control's display area RECT rc; GetWindowRect(m_hTab, &rc); MapWindowPoints(NULL, hwndDlg, (POINT *)&rc, 2); TabCtrl_AdjustRect(m_hTab, FALSE, &rc); SetWindowPos(hTab0dialog, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_SHOWWINDOW); SetWindowPos(hTab1dialog, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_HIDEWINDOW); SetWindowPos(hTab2dialog, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_HIDEWINDOW); SetWindowPos(hTab3dialog, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_HIDEWINDOW); SetWindowPos(hTab4dialog, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_HIDEWINDOW); SetWindowPos(hTab5dialog, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_HIDEWINDOW); SetWindowPos(hTab6dialog, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_HIDEWINDOW); SetWindowPos(hTab7dialog, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_HIDEWINDOW); return TRUE; } case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: ///SetFocus(GetDlgItem(hwndDlg, IDOK)); SendMessage(hTab0dialog, WM_COMMAND, IDOK, 0); SendMessage(hTab1dialog, WM_COMMAND, IDOK, 0); SendMessage(hTab2dialog, WM_COMMAND, IDOK, 0); SendMessage(hTab3dialog, WM_COMMAND, IDOK, 0); SendMessage(hTab4dialog, WM_COMMAND, IDOK, 0); SendMessage(hTab5dialog, WM_COMMAND, IDOK, 0); SendMessage(hTab6dialog, WM_COMMAND, IDOK, 0); SendMessage(hTab7dialog, WM_COMMAND, IDOK, 0); //SendMessage(_this->m_hPageGeneral, WM_COMMAND, IDC_OK, 0); DestroyWindow(hTab0dialog); DestroyWindow(hTab1dialog); DestroyWindow(hTab2dialog); DestroyWindow(hTab3dialog); DestroyWindow(hTab4dialog); DestroyWindow(hTab5dialog); DestroyWindow(hTab6dialog); DestroyWindow(hTab7dialog); Save_settings(); EndDialog(hwndDlg, TRUE); return TRUE; case IDCANCEL: SendMessage(hTab0dialog, WM_COMMAND, IDCANCEL, 0); SendMessage(hTab1dialog, WM_COMMAND, IDCANCEL, 0); SendMessage(hTab2dialog, WM_COMMAND, IDCANCEL, 0); SendMessage(hTab3dialog, WM_COMMAND, IDCANCEL, 0); SendMessage(hTab4dialog, WM_COMMAND, IDCANCEL, 0); SendMessage(hTab5dialog, WM_COMMAND, IDCANCEL, 0); SendMessage(hTab6dialog, WM_COMMAND, IDCANCEL, 0); SendMessage(hTab7dialog, WM_COMMAND, IDCANCEL, 0); DestroyWindow(hTab0dialog); DestroyWindow(hTab1dialog); DestroyWindow(hTab2dialog); DestroyWindow(hTab3dialog); DestroyWindow(hTab4dialog); DestroyWindow(hTab5dialog); DestroyWindow(hTab6dialog); DestroyWindow(hTab7dialog); EndDialog(hwndDlg, FALSE); return TRUE; } return FALSE; case WM_NOTIFY: { LPNMHDR pn = (LPNMHDR)lParam; switch (pn->code) { case TCN_SELCHANGE: switch (pn->idFrom) { case IDC_TAB: int i = TabCtrl_GetCurFocus(m_hTab); switch (i) { case 0: ShowWindow(hTab0dialog, SW_SHOW); SetFocus(hTab0dialog); return 0; case 1: ShowWindow(hTab1dialog, SW_SHOW); SetFocus(hTab1dialog); return 0; case 2: ShowWindow(hTab2dialog, SW_SHOW); SetFocus(hTab2dialog); return 0; case 3: ShowWindow(hTab3dialog, SW_SHOW); SetFocus(hTab3dialog); return 0; case 4: ShowWindow(hTab4dialog, SW_SHOW); SetFocus(hTab4dialog); return 0; case 5: ShowWindow(hTab5dialog, SW_SHOW); SetFocus(hTab5dialog); return 0; case 6: ShowWindow(hTab6dialog, SW_SHOW); SetFocus(hTab6dialog); return 0; } return 0; } return 0; case TCN_SELCHANGING: switch (pn->idFrom) { case IDC_TAB: int i = TabCtrl_GetCurFocus(m_hTab); switch (i) { case 0: ShowWindow(hTab0dialog, SW_HIDE); break; case 1: ShowWindow(hTab1dialog, SW_HIDE); break; case 2: ShowWindow(hTab2dialog, SW_HIDE); break; case 3: ShowWindow(hTab3dialog, SW_HIDE); break; case 4: ShowWindow(hTab4dialog, SW_HIDE); break; case 5: ShowWindow(hTab5dialog, SW_HIDE); break; case 6: ShowWindow(hTab6dialog, SW_HIDE); ShowWindow(hTab7dialog, SW_HIDE); break; } return 0; } return 0; } return 0; } } return 0; }
static LRESULT CALLBACK settings_proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { char tempchar[25]; switch(message) { case WM_INITDIALOG: //win_log("init settings"); portA=saved_portA; portB=saved_portB; portS=saved_portS; mode2=saved_mode2; mode1=saved_mode1; keepalive=saved_keepalive; ssl_proxy=saved_ssl_proxy; ip_service=saved_ip_service; allow=saved_allow; refuse=saved_refuse; refuse2=saved_refuse2; strcpy(sample1,saved_sample1); strcpy(sample2,saved_sample2); strcpy(sample3,saved_sample3); SetDlgItemText(hDlg, IDC_ACCEPTPORT, _itoa(portA,tempchar,10)); SetDlgItemText(hDlg, IDC_LISTENPORT, _itoa(portB,tempchar,10)); SendDlgItemMessage(hDlg, IDC_ENABLE,BM_SETCHECK,mode2,0); SendDlgItemMessage(hDlg, IDC_ENABLE2,BM_SETCHECK,mode1,0); SendDlgItemMessage(hDlg, IDC_KEEPALIVE,BM_SETCHECK,keepalive,0); SendDlgItemMessage(hDlg, IDC_ENABLE3,BM_SETCHECK,ssl_proxy,0); SendDlgItemMessage(hDlg, IDC_ENABLE4,BM_SETCHECK,ip_service,0); SendDlgItemMessage(hDlg, IDC_ALLOW,BM_SETCHECK,allow,0); SendDlgItemMessage(hDlg, IDC_REFUSE,BM_SETCHECK,refuse,0); SendDlgItemMessage(hDlg, IDC_REFUSE2,BM_SETCHECK,refuse2,0); SetDlgItemText(hDlg, IDC_EDITALLOW, sample1); SetDlgItemText(hDlg, IDC_EDITREFUSE, sample2); SetDlgItemText(hDlg, IDC_EDITREFUSE2, sample3); SetDlgItemText(hDlg, IDC_PORTSERVER, _itoa(portS,tempchar,10)); if (mode2) { EnableWindow(GetDlgItem(hDlg, IDC_BITMAP1), 1); EnableWindow(GetDlgItem(hDlg, IDC_LISTENPORT), 1); } else { EnableWindow(GetDlgItem(hDlg, IDC_BITMAP1), 0); EnableWindow(GetDlgItem(hDlg, IDC_LISTENPORT), 0); } if (allow) EnableWindow(GetDlgItem(hDlg, IDC_EDITALLOW), 1); else EnableWindow(GetDlgItem(hDlg, IDC_EDITALLOW), 0); if (refuse) EnableWindow(GetDlgItem(hDlg, IDC_EDITREFUSE), 1); else EnableWindow(GetDlgItem(hDlg, IDC_EDITREFUSE), 0); if (refuse2) EnableWindow(GetDlgItem(hDlg, IDC_EDITREFUSE2), 1); else EnableWindow(GetDlgItem(hDlg, IDC_EDITREFUSE2), 0); return TRUE; case WM_COMMAND: switch(wParam) { case IDC_ENABLE: if (SendDlgItemMessage(hDlg, IDC_ENABLE,BM_GETCHECK,0,0)== BST_CHECKED) mode2=1; else mode2=0; if (mode2) { EnableWindow(GetDlgItem(hDlg, IDC_LISTENPORT), 1); EnableWindow(GetDlgItem(hDlg, IDC_BITMAP1), 1); } else { EnableWindow(GetDlgItem(hDlg, IDC_LISTENPORT), 0); EnableWindow(GetDlgItem(hDlg, IDC_BITMAP1), 0); } break; case IDC_ENABLE2: if (SendDlgItemMessage(hDlg, IDC_ENABLE2,BM_GETCHECK,0,0)== BST_CHECKED) mode1=1; else mode1=0; case IDC_KEEPALIVE: if (SendDlgItemMessage(hDlg, IDC_KEEPALIVE,BM_GETCHECK,0,0)== BST_CHECKED) keepalive=1; else keepalive=0; case IDC_ENABLE3: if (SendDlgItemMessage(hDlg, IDC_ENABLE3,BM_GETCHECK,0,0)== BST_CHECKED) ssl_proxy=1; else ssl_proxy=0; case IDC_ENABLE4: if (SendDlgItemMessage(hDlg, IDC_ENABLE3,BM_GETCHECK,0,0)== BST_CHECKED) ip_service=1; else ip_service=0; case IDC_ALLOW: if (SendDlgItemMessage(hDlg, IDC_ALLOW,BM_GETCHECK,0,0)== BST_CHECKED) allow=1; else allow=0; if (allow) EnableWindow(GetDlgItem(hDlg, IDC_EDITALLOW), 1); else EnableWindow(GetDlgItem(hDlg, IDC_EDITALLOW), 0); break; case IDC_REFUSE: if(SendDlgItemMessage(hDlg, IDC_REFUSE,BM_GETCHECK,0,0)== BST_CHECKED) refuse=1; else refuse=0; if (refuse) EnableWindow(GetDlgItem(hDlg, IDC_EDITREFUSE), 1); else EnableWindow(GetDlgItem(hDlg, IDC_EDITREFUSE), 0); break; case IDC_REFUSE2: if(SendDlgItemMessage(hDlg, IDC_REFUSE2,BM_GETCHECK,0,0)== BST_CHECKED) refuse2=1; else refuse2=0; if (refuse2) EnableWindow(GetDlgItem(hDlg, IDC_EDITREFUSE2), 1); else EnableWindow(GetDlgItem(hDlg, IDC_EDITREFUSE2), 0); break; case IDOK: GetDlgItemText(hDlg, IDC_ACCEPTPORT, tempchar, 25); portA=atoi(tempchar); GetDlgItemText(hDlg, IDC_LISTENPORT, tempchar, 25); portB=atoi(tempchar); GetDlgItemText(hDlg, IDC_PORTSERVER, tempchar, 25); portS=atoi(tempchar); GetDlgItemText(hDlg, IDC_EDITALLOW, sample1,1024); GetDlgItemText(hDlg, IDC_EDITREFUSE, sample2,1024); GetDlgItemText(hDlg, IDC_EDITREFUSE2, sample3,1024); saved_portA=portA; saved_portB=portB; saved_portS=portS; saved_mode2=mode2; saved_mode1=mode1; saved_keepalive=keepalive; saved_ssl_proxy=ssl_proxy; saved_ip_service=ip_service; saved_allow=allow; saved_refuse=refuse; saved_refuse2=refuse2; strcpy(saved_sample1,sample1); strcpy(saved_sample2,sample2); strcpy(saved_sample3,sample3); Save_settings(); win_log("Settings Saved: WARNING, new settings become active after restart !"); case IDCANCEL: EndDialog(hDlg, TRUE); return TRUE; } } return FALSE; }
void Read_settings() { char szFileName[MAX_PATH]; HANDLE hFile=NULL; Read_comment(); if (GetModuleFileName(NULL, szFileName, MAX_PATH)) { char* p = strrchr(szFileName, '\\'); *p = '\0'; strcat (szFileName,"\\settings2.txt"); } hFile=CreateFile((LPCSTR)szFileName, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile==INVALID_HANDLE_VALUE) { saved_portA=5901; saved_portB=5500; saved_mode2=1; saved_mode1=0; saved_keepalive=0; saved_allow=1; saved_refuse=0; saved_refuse2=0; strcpy(saved_sample1,""); strcpy(saved_sample2,""); strcpy(saved_sample3,""); strcpy(saved_password,"adminadmi2"); saved_portHTTP=80; saved_usecom=0; Save_settings(); } else { unsigned long readbytes; char *test; char *pos; int ch = ';'; ReadFile(hFile,&saved_portA,sizeof(int),&readbytes,NULL); ReadFile(hFile,&saved_portB,sizeof(int),&readbytes,NULL); ReadFile(hFile,&saved_mode2,sizeof(int),&readbytes,NULL); ReadFile(hFile,&saved_mode1,sizeof(int),&readbytes,NULL); ReadFile(hFile,&saved_keepalive,sizeof(int),&readbytes,NULL); ReadFile(hFile,&saved_allow,sizeof(int),&readbytes,NULL); ReadFile(hFile,&saved_refuse,sizeof(int),&readbytes,NULL); ReadFile(hFile,&saved_refuse2,sizeof(int),&readbytes,NULL); ReadFile(hFile,saved_sample1,1024,&readbytes,NULL); ReadFile(hFile,saved_sample2,1024,&readbytes,NULL); ReadFile(hFile,saved_sample3,1024,&readbytes,NULL); ReadFile(hFile,saved_password,64,&readbytes,NULL); ReadFile(hFile,&saved_portHTTP,sizeof(int),&readbytes,NULL); ReadFile(hFile,&saved_usecom,sizeof(int),&readbytes,NULL); test=strchr(saved_sample1,ch); pos=saved_sample1; while (test) { int len=test-pos; strncpy(temp1[rule1],pos,len); temp1[rule1][len]=0; rule1++; pos+=len+1; test=strchr(pos,ch); } strcpy(temp1[rule1],pos); rule1++; test=strchr(saved_sample2,ch); pos=saved_sample2; while (test) { int len=test-pos; strncpy(temp2[rule2],pos,len); temp2[rule2][len]=0; rule2++; pos+=len+1; test=strchr(pos,ch); } strcpy(temp2[rule2],pos); rule2++; test=strchr(saved_sample3,ch); pos=saved_sample3; while (test) { int len=test-pos; strncpy(temp3[rule3],pos,len); temp3[rule3][len]=0; rule3++; pos+=len+1; test=strchr(pos,ch); } strcpy(temp3[rule3],pos); rule3++; CloseHandle(hFile); } }