|
|
// ManageDialog.cpp : implementation file
//
#include "stdafx.h"
#include "ManageDialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// ManageDialog dialog
ManageDialog::ManageDialog(CWnd* pParent /*=NULL*/) :CDialog(ManageDialog::IDD, pParent), m_watcher(NULL), m_Index(0), Port(23), lang(0), tc(0), hist(0) { //{{AFX_DATA_INIT(ManageDialog)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void ManageDialog::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); CEdit *ctrl; BOOL ret; //{{AFX_DATA_MAP(ManageDialog)
ctrl = (CEdit *)GetDlgItem(IDC_MACHINE_NAME_MANAGE); ret = ctrl->SetReadOnly(FALSE); DDX_Text(pDX, IDC_MACHINE_NAME_MANAGE, Machine); ret = ctrl->SetReadOnly(TRUE); ctrl = (CEdit *)GetDlgItem(IDC_COMMAND_MANAGE); ret = ctrl->SetReadOnly(FALSE); DDX_Text(pDX, IDC_COMMAND_MANAGE, Command); ret = ctrl->SetReadOnly(TRUE); ctrl = (CEdit *)GetDlgItem(IDC_LOGIN_MANAGE); ret = ctrl->SetReadOnly(FALSE); DDX_Text(pDX, IDC_LOGIN_MANAGE, LoginName); ret = ctrl->SetReadOnly(TRUE); ctrl = (CEdit *)GetDlgItem(IDC_PASSWD_MANAGE); ret = ctrl->SetReadOnly(FALSE); DDX_Text(pDX, IDC_PASSWD_MANAGE, LoginPasswd); ret = ctrl->SetReadOnly(TRUE); ctrl = (CEdit *)GetDlgItem(IDC_SESSION_MANAGE); ret = ctrl->SetReadOnly(FALSE); DDX_Text(pDX, IDC_SESSION_MANAGE, Session); ret = ctrl->SetReadOnly(TRUE); ctrl = (CEdit *)GetDlgItem(IDC_PORT_MANAGE); ret = ctrl->SetReadOnly(FALSE); DDX_Text(pDX,IDC_PORT_MANAGE, Port); ret = ctrl->SetReadOnly(TRUE); ctrl = (CEdit *)GetDlgItem(IDC_CLIENT_MANAGE); ret = ctrl->SetReadOnly(FALSE); DDX_Text(pDX,IDC_CLIENT_MANAGE,tcclnt); ret = ctrl->SetReadOnly(TRUE); ctrl = (CEdit *)GetDlgItem(IDC_LANGUAGE_MANAGE); ret = ctrl->SetReadOnly(FALSE); DDX_Text(pDX,IDC_LANGUAGE_MANAGE,language); ret = ctrl->SetReadOnly(TRUE); ctrl = (CEdit *)GetDlgItem(IDC_HISTORY_MANAGE); ret = ctrl->SetReadOnly(FALSE); DDX_Text(pDX,IDC_HISTORY_MANAGE,history); ret = ctrl->SetReadOnly(TRUE); // NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(ManageDialog, CDialog) //{{AFX_MSG_MAP(ManageDialog)
ON_BN_CLICKED(EDIT_BUTTON, OnEditButton) ON_BN_CLICKED(DELETE_BUTTON, OnDeleteButton) ON_BN_CLICKED(NEW_BUTTON, OnNewButton) ON_BN_CLICKED(NEXT_BUTTON, OnNextButton) ON_BN_CLICKED(PREV_BUTTON, OnPrevButton) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// ManageDialog message handlers
void ManageDialog::OnEditButton() { // TODO: Add your control notification handler code here
ParameterDialog pd;
pd.Session = (LPCTSTR) Session; pd.Machine = (LPCTSTR) Machine; pd.Command = (LPCTSTR) Command; CString temp; pd.language = lang; pd.tcclnt = tc; pd.history = hist; pd.LoginName = (LPCTSTR) LoginName; pd.LoginPasswd = (LPCTSTR) LoginPasswd; pd.Port = Port; GetSetParameters(pd); if(m_watcher){ int ret = m_watcher->GetParametersByIndex(m_Index, Session, Machine, Command, Port, lang, tc, hist, LoginName, LoginPasswd ); if(ret == ERROR_SUCCESS){ language.LoadString(IDS_ENGLISH + lang); tcclnt.LoadString(IDS_TELNET + tc); history.LoadString(IDS_NO + hist); } } UpdateData(FALSE); }
void ManageDialog::OnDeleteButton() { // TODO: Add your control notification handler code here
HKEY &m_hkey = m_watcher->GetKey();
if(!m_hkey){ return; } int RetVal = RegDeleteKey(m_hkey, (LPCTSTR) Session ); if (RetVal == ERROR_SUCCESS){ m_Index = m_Index ? m_Index -1 : 0; if(m_watcher){ ParameterDialog pd; pd.Session = Session; m_watcher->Refresh(pd,TRUE); RetVal = m_watcher->GetParametersByIndex(m_Index, Session, Machine, Command, Port, lang, tc, hist, LoginName, LoginPasswd ); if(RetVal == ERROR_SUCCESS){ language.LoadString(IDS_ENGLISH + lang); tcclnt.LoadString(IDS_TELNET + tc); history.LoadString(IDS_NO + hist); } } } UpdateData(FALSE);
}
void ManageDialog::OnNewButton() { // TODO: Add your control notification handler code here
ParameterDialog pd; GetSetParameters(pd);
}
void ManageDialog::OnNextButton() { // TODO: Add your control notification handler code here
int ret = 0;
m_Index ++; if(m_watcher){ ret = m_watcher->GetParametersByIndex(m_Index, Session, Machine, Command, Port, lang, tc, hist, LoginName, LoginPasswd ); if(ret == ERROR_SUCCESS){ language.LoadString(IDS_ENGLISH + lang); tcclnt.LoadString(IDS_TELNET + tc); history.LoadString(IDS_NO + hist); } } if (ret != 0){ m_Index --; if(m_watcher){ ret = m_watcher->GetParametersByIndex(m_Index, Session, Machine, Command, Port, lang, tc, hist, LoginName, LoginPasswd ); if(ret == ERROR_SUCCESS){ language.LoadString(IDS_ENGLISH + lang); tcclnt.LoadString(IDS_TELNET + tc); history.LoadString(IDS_NO + hist); } } } UpdateData(FALSE); return;
}
void ManageDialog::OnPrevButton() { // TODO: Add your control notification handler code here
int ret = 0;
m_Index = m_Index ? m_Index -1 : 0; if(m_watcher){ ret = m_watcher->GetParametersByIndex(m_Index, Session, Machine, Command, Port, lang, tc, hist, LoginName, LoginPasswd ); if(ret == ERROR_SUCCESS){ language.LoadString(IDS_ENGLISH + lang); tcclnt.LoadString(IDS_TELNET + tc); history.LoadString(IDS_NO + hist); } } if (ret != 0){ m_Index =0; if(m_watcher){ ret = m_watcher->GetParametersByIndex(m_Index, Session, Machine, Command, Port, lang, tc, hist, LoginName, LoginPasswd ); if(ret == ERROR_SUCCESS){ language.LoadString(IDS_ENGLISH + lang); tcclnt.LoadString(IDS_TELNET + tc); history.LoadString(IDS_NO + hist); } } } UpdateData(FALSE); return; }
void ManageDialog::OnOK() { // TODO: Add extra validation here
CDialog::OnOK(); }
void ManageDialog::SetApplicationPtr(CWatcherApp *watcher) {
int ret = 0;
m_watcher = watcher; if(m_watcher){ ret = m_watcher->GetParametersByIndex(m_Index, Session, Machine, Command, Port, lang, tc, hist, LoginName, LoginPasswd ); if(ret == ERROR_SUCCESS){ language.LoadString(IDS_ENGLISH + lang); tcclnt.LoadString(IDS_TELNET + tc); history.LoadString(IDS_NO + hist); } } }
void ManageDialog::GetSetParameters(ParameterDialog &pd) { HKEY m_child;
INT_PTR ret = pd.DoModal(); if (ret == IDOK){ // Add it to the registry
if(m_watcher){ HKEY & m_hkey = m_watcher->GetKey(); ret = RegCreateKeyEx(m_hkey, (LPCTSTR) pd.Session, // subkey name
0, // reserved
NULL, // class string
0, // special options
KEY_ALL_ACCESS, // desired security access
NULL, // inheritance
&m_child, // key handle
NULL // disposition value buffer
); if (ret == ERROR_SUCCESS){ ret = SetParameters(pd.Machine, pd.Command, pd.LoginName, pd.LoginPasswd, pd.Port, pd.language, pd.tcclnt,pd.history, m_child ); if(ret == ERROR_SUCCESS){ m_watcher->Refresh(pd,FALSE); } } }else{ return; } } }
int ManageDialog::SetParameters(CString &mac, CString &com, CString &lgnName, CString &lgnPasswd, UINT port, int lang, int tc, int hist, HKEY &child ) { DWORD lpcName; const TCHAR *lpName; int RetVal; int charSize = sizeof(TCHAR);
lpcName = MAX_BUFFER_SIZE; lpName = (LPCTSTR) mac; lpcName = (mac.GetLength())*charSize; RetVal = RegSetValueEx(child, _TEXT("Machine"), NULL, REG_SZ, (LPBYTE) lpName, lpcName ); if(RetVal != ERROR_SUCCESS){ return RetVal; } lpName = (LPCTSTR) com; lpcName = (com.GetLength())*charSize; RetVal = RegSetValueEx(child, _TEXT("Command"), NULL, REG_SZ, (LPBYTE)lpName, lpcName ); if(RetVal != ERROR_SUCCESS){ return RetVal; } lpName = (LPCTSTR) lgnName; lpcName = (lgnName.GetLength())*charSize; RetVal = RegSetValueEx(child, _TEXT("User Name"), NULL, REG_SZ, (LPBYTE)lpName, lpcName ); if(RetVal != ERROR_SUCCESS){ return RetVal; } lpName = (LPCTSTR) lgnPasswd; lpcName = (lgnPasswd.GetLength())*charSize; RetVal = RegSetValueEx(child, _TEXT("Password"), NULL, REG_SZ, (LPBYTE)lpName, lpcName ); if(RetVal != ERROR_SUCCESS){ return RetVal; }
lpcName = sizeof(UINT); RetVal = RegSetValueEx(child, _TEXT("Port"), NULL, REG_DWORD, (LPBYTE)&port, lpcName ); if(RetVal != ERROR_SUCCESS){ return RetVal; } lpcName = sizeof(DWORD); RetVal = RegSetValueEx(child, _TEXT("Client Type"), NULL, REG_DWORD, (LPBYTE)&tc, lpcName ); if(RetVal != ERROR_SUCCESS){ return RetVal; } lpcName = sizeof(DWORD); RetVal = RegSetValueEx(child, _TEXT("Language"), NULL, REG_DWORD, (LPBYTE)&lang, lpcName ); if(RetVal != ERROR_SUCCESS){ return RetVal; } lpcName = sizeof(DWORD); RetVal = RegSetValueEx(child, _TEXT("History"), NULL, REG_DWORD, (LPBYTE)&hist, lpcName ); if(RetVal != ERROR_SUCCESS){ return RetVal; } // Now you can refresh the application.
return RetVal;
}
|