SmsCenter/DLG_Setup.cpp

257 lines
8.1 KiB
C++
Raw Normal View History

2025-01-03 16:47:25 +08:00
// DLG_Setup.cpp : implementation file
//
#include "stdafx.h"
#include "SmsCenter.h"
#include "DLG_Setup.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DLG_Setup dialog
DLG_Setup::DLG_Setup(CWnd* pParent /*=NULL*/)
: CDialog(DLG_Setup::IDD, pParent)
{
//{{AFX_DATA_INIT(DLG_Setup)
//}}AFX_DATA_INIT
memset(&m_Setup,0,sizeof(m_Setup));
}
void DLG_Setup::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DLG_Setup)
DDX_Control(pDX, IDC_SETUP_IP_IPADDRESS, m_L_Address);
DDX_Control(pDX, IDC_SETUP_DB_USER3, m_E_DBUser3);
DDX_Control(pDX, IDC_SETUP_DB_USER2, m_E_DBUser2);
DDX_Control(pDX, IDC_SETUP_DB_PASSWORD3, m_E_DBPassword3);
DDX_Control(pDX, IDC_SETUP_DB_PASSWORD2, m_E_DBPassword2);
DDX_Control(pDX, IDC_SETUP_DB_NAME3, m_E_DBName3);
DDX_Control(pDX, IDC_SETUP_DB_NAME2, m_E_DBName2);
DDX_Control(pDX, IDC_SETUP_IP_FILENAME, m_E_IPName);
DDX_Control(pDX, IDC_SETUP_MQ_SERVER, m_E_MQ_Server);
DDX_Control(pDX, IDC_SETUP_MQ_QSENDP, m_E_MQ_QSendP);
DDX_Control(pDX, IDC_SETUP_MQ_QSENDB, m_E_MQ_QSendB);
DDX_Control(pDX, IDC_SETUP_MQ_QRECV, m_E_MQ_QRecv);
DDX_Control(pDX, IDC_SETUP_MQ_QM, m_E_MQ_QM);
DDX_Control(pDX, IDC_SETUP_DB_USERS, m_S_DBUser);
DDX_Control(pDX, IDC_SETUP_DB_PASSWORDS, m_S_DBPassword);
DDX_Control(pDX, IDC_SETUP_DB_USER, m_E_DBUser);
DDX_Control(pDX, IDC_SETUP_DB_PASSWORD, m_E_DBPassword);
DDX_Control(pDX, IDC_SETUP_DB_TYPE, m_L_DBType);
DDX_Control(pDX, IDC_SETUP_DB_SELDB, m_B_DBSelDB);
DDX_Control(pDX, IDC_SETUP_DB_NAME, m_E_DBName);
//}}AFX_DATA_MAP
DDX_Control(pDX, IDC_SETUP_ZLIB, m_B_Zlib);
DDX_Control(pDX, IDC_SETUP_ZLIB_MANAGER, m_B_Zlib_Manager);
DDX_Control(pDX, IDC_SETUP_XY, m_B_XY);
DDX_Control(pDX, IDC_SETUP_DB_PROVIDER, m_E_Provider);
}
BEGIN_MESSAGE_MAP(DLG_Setup, CDialog)
//{{AFX_MSG_MAP(DLG_Setup)
ON_CBN_SELCHANGE(IDC_SETUP_DB_TYPE, OnSelchangeSetupDbType)
ON_BN_CLICKED(IDC_SETUP_DB_SELDB, OnSetupDbSeldb)
ON_BN_CLICKED(IDC_SETUP_IP_FILENAME_SEL, OnSetupIpFilenameSel)
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDOK, &DLG_Setup::OnBnClickedOk)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLG_Setup message handlers
void DLG_Setup::SetPara(SC_Setup setup)
{
m_Setup = setup;
}
SC_Setup DLG_Setup::GetPara()
{
return m_Setup;
}
BOOL DLG_Setup::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_L_DBType.SetCurSel( m_Setup.uiDBType );
m_E_DBName.SetWindowText( m_Setup.szDBName );
m_E_DBUser.SetWindowText( m_Setup.szDBUser );
m_E_DBPassword.SetWindowText( m_Setup.szDBPasswd );
m_E_DBName2.SetWindowText( m_Setup.szDBName2 );
m_E_DBUser2.SetWindowText( m_Setup.szDBUser2 );
m_E_DBPassword2.SetWindowText( m_Setup.szDBPasswd2 );
m_E_DBName3.SetWindowText( m_Setup.szDBName3 );
m_E_DBUser3.SetWindowText( m_Setup.szDBUser3 );
m_E_DBPassword3.SetWindowText( m_Setup.szDBPasswd3 );
m_E_Provider.SetWindowText(m_Setup.szProvider);
m_E_MQ_Server.SetWindowText( m_Setup.szMQ_Server );
m_E_MQ_QM.SetWindowText( m_Setup.szMQ_QM );
m_E_MQ_QRecv.SetWindowText( m_Setup.szMQ_QRecv );
m_E_MQ_QSendP.SetWindowText( m_Setup.szMQ_QSendP );
m_E_MQ_QSendB.SetWindowText( m_Setup.szMQ_QSendB );
m_E_IPName.SetWindowText( m_Setup.szIPName );
OnSelchangeSetupDbType();
//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ
WORD wVersionRequested;
WSADATA wsaData;
//Start up WinSock
wVersionRequested = MAKEWORD(2, 2);
WSAStartup(wVersionRequested, &wsaData);
char HostName[128]={0};
LPHOSTENT lpHostEnt;
struct in_addr addr[50]={0};
if ( m_Setup.addr == htonl(INADDR_ANY))
m_L_Address.SetCurSel(0);
if (gethostname(HostName,sizeof(HostName))
!=SOCKET_ERROR)// <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
lpHostEnt=gethostbyname(HostName);//<2F><><EFBFBD>õõ<C3B5><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (lpHostEnt)
{
for (int i=0; lpHostEnt->h_addr_list[i]!=0; i++)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>еõ<D0B5>IP<49><50>ַ
{
memcpy(&addr[i],lpHostEnt->h_addr_list[i],
sizeof(in_addr));
#ifdef UNICODE
int iItem=m_L_Address.AddString(CA2W(inet_ntoa(addr[i])));
if ( addr[i].S_un.S_addr==m_Setup.addr )
m_L_Address.SetCurSel(iItem);
#else
int iItem=m_L_Address.AddString(inet_ntoa(addr[i]));
if ( addr[i].S_un.S_addr==m_Setup.addr )
m_L_Address.SetCurSel(iItem);
#endif
}
}
}
//Label4- >Caption=inet_ntoa(addr[0]);
//Label5- >Caption=inet_ntoa(addr[1]);
m_B_Zlib.SetCheck(m_Setup.bZlib);
m_B_Zlib_Manager.SetCheck(m_Setup.bZlibManager);
m_B_XY.SetCheck(m_Setup.bXY);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DLG_Setup::OnSelchangeSetupDbType()
{
m_Setup.uiDBType = m_L_DBType.GetCurSel();
if ( m_Setup.uiDBType == DB_SQLSERVER )
{
m_B_DBSelDB.ShowWindow( SW_HIDE );
m_E_DBUser.ShowWindow( SW_SHOW );
m_E_DBPassword.ShowWindow( SW_SHOW );
m_S_DBUser.ShowWindow( SW_SHOW );
m_S_DBPassword.ShowWindow( SW_SHOW );
}
else
{
m_B_DBSelDB.ShowWindow( SW_SHOW );
m_E_DBUser.ShowWindow( SW_HIDE );
m_E_DBPassword.ShowWindow( SW_SHOW );
m_S_DBUser.ShowWindow( SW_HIDE );
m_S_DBPassword.ShowWindow( SW_SHOW );
}
}
void DLG_Setup::OnSetupDbSeldb()
{
static TCHAR BASED_CODE szFilter[] = _T("Access MDB Files (*.mdb)|*.mdb|All Files (*.*)|*.*||");
CFileDialog dlg(TRUE,_T("mdb"),NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter);
if (dlg.DoModal() == IDOK)
{
m_E_DBName.SetWindowText(dlg.GetPathName());
}
}
void DLG_Setup::OnSetupIpFilenameSel()
{
// static TCHAR BASED_CODE szFilter[] = _T("Access Files (*.mdb)|*.mdb|All Files (*.*)|*.*||");
// CFileDialog dlg(TRUE,_T("mdb"),_T("ip.mdb"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter);
// if (dlg.DoModal() == IDOK)
// {
// m_E_IPName.SetWindowText(dlg.GetPathName());
// }
}
void DLG_Setup::OnBnClickedOk()
{
//ȡ<><C8A1><EFBFBD><EFBFBD>
m_Setup.uiDBType = m_L_DBType.GetCurSel();
m_E_DBName.GetWindowText( m_Setup.szDBName , sizeof(m_Setup.szDBName) ); AllTrim(m_Setup.szDBName);
m_E_DBUser.GetWindowText( m_Setup.szDBUser , sizeof(m_Setup.szDBUser) ); AllTrim(m_Setup.szDBUser);
m_E_DBPassword.GetWindowText( m_Setup.szDBPasswd , sizeof(m_Setup.szDBUser) ); AllTrim(m_Setup.szDBUser);
m_E_DBName2.GetWindowText( m_Setup.szDBName2 , sizeof(m_Setup.szDBName2) ); AllTrim(m_Setup.szDBName2);
m_E_DBUser2.GetWindowText( m_Setup.szDBUser2 , sizeof(m_Setup.szDBUser2) ); AllTrim(m_Setup.szDBUser2);
m_E_DBPassword2.GetWindowText( m_Setup.szDBPasswd2 , sizeof(m_Setup.szDBUser2) ); AllTrim(m_Setup.szDBUser2);
m_E_DBName3.GetWindowText( m_Setup.szDBName3 , sizeof(m_Setup.szDBName3) ); AllTrim(m_Setup.szDBName3);
m_E_DBUser3.GetWindowText( m_Setup.szDBUser3 , sizeof(m_Setup.szDBUser3) ); AllTrim(m_Setup.szDBUser3);
m_E_DBPassword3.GetWindowText( m_Setup.szDBPasswd3 , sizeof(m_Setup.szDBUser3) ); AllTrim(m_Setup.szDBUser3);
m_E_Provider.GetWindowText(m_Setup.szProvider, sizeof(m_Setup.szProvider)); AllTrim(m_Setup.szProvider);
m_E_MQ_Server.GetWindowText( m_Setup.szMQ_Server , sizeof(m_Setup.szMQ_Server) ); AllTrim(m_Setup.szMQ_Server);
m_E_MQ_QM.GetWindowText( m_Setup.szMQ_QM , sizeof(m_Setup.szMQ_QM) ); AllTrim(m_Setup.szMQ_QM);
m_E_MQ_QRecv.GetWindowText( m_Setup.szMQ_QRecv , sizeof(m_Setup.szMQ_QRecv) ); AllTrim(m_Setup.szMQ_QRecv);
m_E_MQ_QSendP.GetWindowText( m_Setup.szMQ_QSendP , sizeof(m_Setup.szMQ_QSendP) ); AllTrim(m_Setup.szMQ_QSendP);
m_E_MQ_QSendB.GetWindowText( m_Setup.szMQ_QSendB , sizeof(m_Setup.szMQ_QSendB) ); AllTrim(m_Setup.szMQ_QSendB);
m_E_IPName.GetWindowText( m_Setup.szIPName , sizeof(m_Setup.szIPName));AllTrim(m_Setup.szIPName);
if ( _tcslen( m_Setup.szDBName) <= 0 )
{
MessageBox( _T("<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
m_E_DBName.SetFocus();
return ;
}
CString strAddr ;
m_L_Address.GetWindowText(strAddr);
if ( strAddr == CString(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>")) )
{
m_Setup.addr = htonl(INADDR_ANY);
}
else
{
#ifdef UNICODE
m_Setup.addr = inet_addr( CW2A(strAddr) );
#else
m_Setup.addr = inet_addr( strAddr );
#endif
}
m_Setup.bZlib = m_B_Zlib.GetCheck();
m_Setup.bZlibManager = m_B_Zlib_Manager.GetCheck();
m_Setup.bXY = m_B_XY.GetCheck();
CDialog::OnOK();
}