VcDemoDlg.cpp 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669
  1. // VcDemoDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "VcDemo.h"
  5. #include "VcDemoDlg.h"
  6. #include <afxsock.h>//<Winsock2.h>
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. //---------------------------------------------------------------------------
  13. typedef char* (__stdcall *FnMongateGetVer)();
  14. typedef int (__stdcall *FnMongateChangePwd)(int sock, const char* pszAccount,
  15. const char* pszOldPwd, const char* pszNewPwd);
  16. typedef int (__stdcall *FnMongateConnect)(const char* pszIP, int iPort, const char* pszAccount,
  17. const char* pszPwd);
  18. typedef void (__stdcall *FnMongateDisconnect)(int sock);
  19. typedef int (__stdcall *FnMongateQueryBalance)(int sock);
  20. typedef int (__stdcall *FnMongateQueryUsed)(int sock);
  21. typedef int (__stdcall *FnMongateSendSms)(int sock, const char* pszMobis, const char* pszMsg);
  22. typedef int (__stdcall *FnMongateConnectSocks4Proxy)(const char* ,int ,const char* ,int ,const char* ,const char* );
  23. typedef int (__stdcall *FnMongateCsGetSms)(SOCKET , char [500][255]);
  24. typedef int (__stdcall *FnMongateVasGetSms)(SOCKET , char [500][255]);
  25. typedef int (__stdcall *FnMongateVasSendSms)(SOCKET , const char* , const char* , const char* , const char* ,const char* , const char* , int );
  26. typedef int (__stdcall *FnMongateCsSendSmsHttp)(SOCKET , const char* ,const char* , int , char* );
  27. typedef int (__stdcall *FnMongateTestConn)(SOCKET );
  28. typedef int (__stdcall *FnMongateCsGetStatusReport)(SOCKET , char [500][255]);
  29. typedef int (__stdcall *FnMongateCsSendSms)(SOCKET , const char* ,const char* , int , char* );
  30. typedef int (__stdcall *FnMongateConnectSocks5Proxy)( const char* , int ,const char* ,const char* ,const char* ,int ,const char* ,const char* );
  31. typedef int (__stdcall *FnMongateConnectHttpProxy)(const char*,int ,const char* ,const char* ,const char* , int , const char* , const char* );
  32. typedef int (__stdcall *FnMongateTestConnHttp)(int);
  33. typedef int (__stdcall *FnMongateCsGetSmsHttp)(SOCKET , char [500][255]);
  34. typedef int (__stdcall *FnMongateCsGetStatusReportHttp)(SOCKET , char [500][255]);
  35. typedef int (__stdcall *FnMongateConnectHttpProxy)(const char* pszProxyIP,
  36. int iProxyPort,const char* pszProxyAccount,const char* pszProxyPwd,
  37. const char* pszIP, int iPort, const char* pszAccount, const char* pszPwd);
  38. typedef int (__stdcall *FnMongateTestMsgEx)(SOCKET sock,const char* pStrMessage,char *keywords);
  39. typedef int (__stdcall *FnMongateTestMsgExHttp)(SOCKET sock,const char* pStrMessage,char *keyword);
  40. typedef int (__stdcall *FnMongateCsSPSendSmsNew)(SOCKET sock, const char* pszMobis,
  41. const char* pszMsg, int iMobiCount,const char* pszSubPort,char* pszSN);
  42. //---------------------------------------------------------------------------
  43. HMODULE g_hDll;
  44. FnMongateGetVer MongateGetVer;
  45. //tcp/ip method
  46. FnMongateTestMsgEx MongateTestMsgEx;
  47. FnMongateTestMsgExHttp MongateTestMsgExHttp;
  48. FnMongateConnect MongateConnect;
  49. FnMongateDisconnect MongateDisconnect;
  50. FnMongateChangePwd MongateChangePwd;
  51. FnMongateQueryBalance MongateQueryBalance;
  52. FnMongateQueryUsed MongateQueryUsed;
  53. FnMongateSendSms MongateSendSms;
  54. FnMongateCsGetSms MongateCsGetSms;
  55. FnMongateVasGetSms MongateVasGetSms;
  56. FnMongateVasSendSms MongateVasSendSms;
  57. FnMongateTestConn MongateTestConn;
  58. FnMongateCsGetStatusReport MongateCsGetStatusReport;
  59. FnMongateCsSendSms MongateCsSendSms;
  60. FnMongateConnectSocks4Proxy MongateConnectSocks4Proxy;
  61. FnMongateConnectSocks5Proxy MongateConnectSocks5Proxy;
  62. //http method
  63. FnMongateConnect MongateConnectHttp;
  64. FnMongateQueryBalance MongateQueryBalanceHttp;
  65. FnMongateQueryUsed MongateQueryUsedHttp;
  66. FnMongateSendSms MongateSendSmsHttp;
  67. FnMongateChangePwd MongateChangePwdHttp;
  68. FnMongateDisconnect MongateDisconnectHttp;
  69. FnMongateTestConnHttp MongateTestConnHttp;
  70. FnMongateCsSendSmsHttp MongateCsSendSmsHttp;
  71. FnMongateConnectHttpProxy MongateConnectHttpProxy;
  72. FnMongateCsGetSmsHttp MongateCsGetSmsHttp;
  73. FnMongateCsGetStatusReportHttp MongateCsGetStatusReportHttp;
  74. FnMongateCsSPSendSmsNew MongateCsSPSendSmsNew;
  75. /////////////////////////////////////////////////////////////////////////////
  76. // CVcDemoDlg dialog IDC_EDT_NUM
  77. int myflag=0;
  78. CVcDemoDlg::CVcDemoDlg(CWnd* pParent /*=NULL*/)
  79. : CDialog(CVcDemoDlg::IDD, pParent)
  80. {
  81. //{{AFX_DATA_INIT(CVcDemoDlg)
  82. m_strSendSms = _T("");
  83. m_strLoginID = _T("");
  84. m_strLoginPwd = _T("");
  85. m_strRecvMobi = _T("");
  86. m_strServiceNo = _T("");
  87. m_strFeeCode = _T("");
  88. m_strLinkID = _T("");
  89. m_strNewPwd = _T("");
  90. m_chkboth = FALSE;
  91. m_kfboth = FALSE;
  92. m_chksingle = TRUE;
  93. m_mobicount = 0;
  94. m_Port = 8018;
  95. m_ServerIp = _T("");
  96. m_bProxy = FALSE;
  97. m_Tcp = FALSE;
  98. //}}AFX_DATA_INIT
  99. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  100. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  101. m_hsock = 0;
  102. }
  103. void CVcDemoDlg::DoDataExchange(CDataExchange* pDX)
  104. {
  105. CDialog::DoDataExchange(pDX);
  106. //{{AFX_DATA_MAP(CVcDemoDlg)
  107. DDX_Control(pDX, IDC_BTN_SEND, m_btnSend);
  108. DDX_Control(pDX, IDC_BTN_CONNECT, m_btnConn);
  109. DDX_Control(pDX, IDC_LST_SMS, m_listCtrl);
  110. DDX_Text(pDX, IDC_EDT_SMS, m_strSendSms);
  111. DDV_MaxChars(pDX, m_strSendSms, 2000);
  112. DDX_Text(pDX, IDC_EDT_LOGIN_ID, m_strLoginID);
  113. DDV_MaxChars(pDX, m_strLoginID, 11);
  114. DDX_Text(pDX, IDC_EDT_LOGIN_PWD, m_strLoginPwd);
  115. DDV_MaxChars(pDX, m_strLoginPwd, 6);
  116. DDX_Text(pDX, IDC_EDT_RECV_MOBI, m_strRecvMobi);
  117. DDX_Text(pDX, IDC_EDT_SERVICE_NO, m_strServiceNo);
  118. DDX_Text(pDX, IDC_EDT_FEE_CODE, m_strFeeCode);
  119. DDV_MaxChars(pDX, m_strFeeCode, 6);
  120. DDX_Text(pDX, IDC_EDT_LINKID, m_strLinkID);
  121. DDX_Text(pDX, IDC_EDT_NEW_PWD, m_strNewPwd);
  122. DDX_Check(pDX, IDC_CHK_BOTH, m_chkboth);
  123. DDX_Check(pDX, IDC_CHK_KFBOTH, m_kfboth);
  124. DDX_Check(pDX, IDC_CHK_SINGLE, m_chksingle);
  125. DDX_Text(pDX, IDC_EDT_NUM, m_mobicount);
  126. DDX_Text(pDX, IDC_EDT_PORT, m_Port);
  127. DDX_Text(pDX, IDC_EDT_SERVER, m_ServerIp);
  128. DDX_Check(pDX, IDC_CHK_PROXY, m_bProxy);
  129. DDX_Check(pDX, IDC_CHECKtcp, m_Tcp);
  130. //}}AFX_DATA_MAP
  131. }
  132. BEGIN_MESSAGE_MAP(CVcDemoDlg, CDialog)
  133. //{{AFX_MSG_MAP(CVcDemoDlg)
  134. ON_WM_PAINT()
  135. ON_WM_QUERYDRAGICON()
  136. ON_BN_CLICKED(IDC_BTN_CONNECT, OnBtnConnect)
  137. ON_BN_CLICKED(IDC_BTN_RECV, OnBtnRecv)
  138. ON_WM_DESTROY()
  139. ON_BN_CLICKED(IDC_BTN_SEND, OnBtnSend)
  140. ON_BN_CLICKED(IDC_BTN_QUERY, OnBtnQuery)
  141. ON_BN_CLICKED(IDC_BTN_Query2, OnBTNQuery2)
  142. ON_BN_CLICKED(IDC_BTN_CHANGE_PWD, OnBtnChangePwd)
  143. ON_BN_CLICKED(IDC_BTN_TEST_CONN, OnBtnTestConn)
  144. ON_BN_CLICKED(IDC_BTN_GET_STATUS, OnBtnGetStatus)
  145. ON_BN_CLICKED(IDC_CHK_SINGLE, OnChkSingle)
  146. ON_BN_CLICKED(IDC_CHK_BOTH, OnChkBoth)
  147. ON_BN_CLICKED(IDC_CHK_KFBOTH, OnChkKfboth)
  148. ON_BN_CLICKED(IDC_BTN_DISCONN, OnBtnDisconn)
  149. ON_BN_CLICKED(IDC_TYPE, OnType)
  150. ON_BN_CLICKED(IDC_CHK_PROXY, OnChkProxy)
  151. ON_BN_CLICKED(IDC_CHECKtcp, OnCHECKtcp)
  152. //}}AFX_MSG_MAP
  153. END_MESSAGE_MAP()
  154. /////////////////////////////////////////////////////////////////////////////
  155. // CVcDemoDlg message handlers
  156. void LoadMWGateway()
  157. {
  158. char path[255] = {0};
  159. ::GetCurrentDirectory(255, path);
  160. strcat(path, "\\LYFZGateway.dll");
  161. if (NULL == (g_hDll = ::LoadLibrary(path)))
  162. {
  163. AfxMessageBox("加载LYFZGateway.dll失败!");
  164. exit(0);
  165. }
  166. MongateChangePwd = (FnMongateChangePwd)::GetProcAddress(g_hDll, "MongateChangePwd");
  167. MongateConnect = (FnMongateConnect)::GetProcAddress(g_hDll, "MongateConnect");
  168. MongateDisconnect = (FnMongateDisconnect)::GetProcAddress(g_hDll, "MongateDisconnect");
  169. MongateCsGetSms = (FnMongateCsGetSms)::GetProcAddress(g_hDll, "MongateCsGetSms");
  170. MongateVasGetSms = (FnMongateVasGetSms)::GetProcAddress(g_hDll, "MongateVasGetSms");
  171. MongateGetVer = (FnMongateGetVer)::GetProcAddress(g_hDll, "MongateGetVer");
  172. MongateTestConn = (FnMongateTestConn)::GetProcAddress(g_hDll, "MongateTestConn");
  173. MongateQueryBalance = (FnMongateQueryBalance)::GetProcAddress(g_hDll, "MongateQueryBalance");
  174. MongateVasSendSms = (FnMongateVasSendSms)::GetProcAddress(g_hDll, "MongateVasSendSms");
  175. MongateSendSms = (FnMongateSendSms)::GetProcAddress(g_hDll, "MongateSendSms");
  176. MongateQueryUsed = (FnMongateQueryUsed)::GetProcAddress(g_hDll, "MongateQueryUsed");
  177. MongateCsSendSms = (FnMongateCsSendSms)::GetProcAddress(g_hDll, "MongateCsSendSms");
  178. MongateCsGetStatusReport = (FnMongateCsGetStatusReport)::GetProcAddress(g_hDll, "MongateCsGetStatusReport");
  179. MongateConnectSocks4Proxy = (FnMongateConnectSocks4Proxy)::GetProcAddress(g_hDll, "MongateConnectSocks4Proxy");
  180. MongateConnectSocks5Proxy = (FnMongateConnectSocks5Proxy)::GetProcAddress(g_hDll, "MongateConnectSocks5Proxy");
  181. MongateConnectHttpProxy = (FnMongateConnectHttpProxy)::GetProcAddress(g_hDll, "MongateConnectHttpProxy");
  182. MongateTestMsgEx = (FnMongateTestMsgEx)::GetProcAddress(g_hDll, "MongateTestMsgEx");
  183. MongateTestMsgExHttp =(FnMongateTestMsgExHttp)::GetProcAddress(g_hDll, "MongateTestMsgExHttp");
  184. MongateQueryBalanceHttp = (FnMongateQueryBalance)::GetProcAddress(g_hDll, "MongateQueryBalanceHttp");
  185. MongateQueryUsedHttp = (FnMongateQueryUsed)::GetProcAddress(g_hDll, "MongateQueryUsedHttp");
  186. MongateConnectHttp = (FnMongateConnect)::GetProcAddress(g_hDll, "MongateConnectHttp");
  187. MongateCsSendSmsHttp = (FnMongateCsSendSms)::GetProcAddress(g_hDll, "MongateCsSendSmsHttp");
  188. MongateCsGetSmsHttp = (FnMongateCsGetSmsHttp)::GetProcAddress(g_hDll, "MongateCsGetSmsHttp");
  189. MongateCsGetStatusReportHttp = (FnMongateCsGetStatusReport)::GetProcAddress(g_hDll, "MongateCsGetStatusReportHttp");
  190. MongateChangePwdHttp = (FnMongateChangePwd)::GetProcAddress(g_hDll, "MongateChangePwdHttp");
  191. MongateTestConnHttp = (FnMongateTestConnHttp)::GetProcAddress(g_hDll, "MongateTestConnHttp");
  192. MongateConnectHttpProxy = (FnMongateConnectHttpProxy)::GetProcAddress(g_hDll, "MongateConnectHttpProxy");
  193. MongateCsSPSendSmsNew = (FnMongateCsSPSendSmsNew)::GetProcAddress(g_hDll, "MongateCsSPSendSmsNew");
  194. //ASSERT(MongateCsSendSms != NULL);
  195. }
  196. BOOL CVcDemoDlg::OnInitDialog()
  197. {
  198. CDialog::OnInitDialog();
  199. // Set the icon for this dialog. The framework does this automatically
  200. // when the application's main window is not a dialog
  201. SetIcon(m_hIcon, TRUE); // Set big icon
  202. SetIcon(m_hIcon, FALSE); // Set small icon
  203. // TODO: Add extra initialization here
  204. LoadMWGateway();
  205. //m_ServerIp="server1.montnets.com";
  206. //m_ServerIp="61.145.229.26";
  207. // m_ServerIp="61.242.89.115";
  208. m_ServerIp="server1.montnets.com";
  209. m_strLoginID = "090802";
  210. m_strRecvMobi="15858427733";
  211. m_mobicount=1;
  212. m_strLoginPwd = "516842";
  213. m_strSendSms = "梦网网关测试信息,恭喜发财!!";
  214. m_Tcp = TRUE;
  215. UpdateData(FALSE);
  216. OnUpdateEnables();
  217. GetDlgItem(IDC_EDIT_PROXYIP)->EnableWindow(FALSE);
  218. GetDlgItem(IDC_EDIT_PROXYPORT)->EnableWindow(FALSE);
  219. GetDlgItem(IDC_EDIT_PROXYID)->EnableWindow(FALSE);
  220. GetDlgItem(IDC_EDIT_PROXYPWD)->EnableWindow(FALSE);
  221. CComboBox * list=(CComboBox*)GetDlgItem(IDC_COMBOPROXY);
  222. list->AddString("Proxy4");
  223. list->AddString("Proxy5");
  224. list->AddString("HttpProxy");
  225. return TRUE; // return TRUE unless you set the focus to a control
  226. }
  227. // If you add a minimize button to your dialog, you will need the code below
  228. // to draw the icon. For MFC applications using the document/view model,
  229. // this is automatically done for you by the framework.
  230. void CVcDemoDlg::OnPaint()
  231. {
  232. if (IsIconic())
  233. {
  234. CPaintDC dc(this); // device context for painting
  235. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  236. // Center icon in client rectangle
  237. int cxIcon = GetSystemMetrics(SM_CXICON);
  238. int cyIcon = GetSystemMetrics(SM_CYICON);
  239. CRect rect;
  240. GetClientRect(&rect);
  241. int x = (rect.Width() - cxIcon + 1) / 2;
  242. int y = (rect.Height() - cyIcon + 1) / 2;
  243. // Draw the icon
  244. dc.DrawIcon(x, y, m_hIcon);
  245. }
  246. else
  247. {
  248. CDialog::OnPaint();
  249. }
  250. }
  251. // The system calls this to obtain the cursor to display while the user drags
  252. // the minimized window.
  253. HCURSOR CVcDemoDlg::OnQueryDragIcon()
  254. {
  255. return (HCURSOR) m_hIcon;
  256. }
  257. //---------------------------------------------------------------------------
  258. void CVcDemoDlg::OnBtnConnect()
  259. {
  260. UpdateData(TRUE);
  261. CString mystr,proxyip,port,id,pwd;
  262. int pport;
  263. if (m_hsock == 0)
  264. {
  265. if(m_bProxy)
  266. {
  267. GetDlgItem(IDC_EDIT_PROXYIP)->GetWindowText(proxyip);
  268. GetDlgItem(IDC_EDIT_PROXYPORT)->GetWindowText(port);
  269. GetDlgItem(IDC_EDIT_PROXYID)->GetWindowText(id);
  270. GetDlgItem(IDC_EDIT_PROXYPWD)->GetWindowText(pwd);
  271. CComboBox* list = (CComboBox*)GetDlgItem(IDC_COMBOPROXY);
  272. pport = atoi(port);
  273. int i = list->GetCurSel();
  274. switch(i)
  275. {
  276. case -1:
  277. AfxMessageBox("请选择代理类型!");
  278. break;
  279. case 0:
  280. m_hsock = MongateConnectSocks4Proxy(proxyip,pport,m_ServerIp, m_Port, m_strLoginID,m_strLoginPwd);
  281. break;
  282. case 1:
  283. m_hsock = MongateConnectSocks5Proxy(proxyip,pport,id,pwd,m_ServerIp, m_Port, m_strLoginID,m_strLoginPwd);
  284. break;
  285. case 2:
  286. m_hsock = MongateConnectHttpProxy(proxyip,pport,id,pwd,m_ServerIp, m_Port, m_strLoginID,m_strLoginPwd);
  287. break;
  288. }
  289. }
  290. else
  291. if(m_Tcp)
  292. m_hsock = MongateConnect(m_ServerIp, m_Port, m_strLoginID,m_strLoginPwd);
  293. else
  294. m_hsock = MongateConnectHttp(m_ServerIp, m_Port, m_strLoginID,m_strLoginPwd);
  295. if (m_hsock > 0)
  296. {
  297. mystr.Format("连接成功,返回句柄:%d",m_hsock);
  298. GetDlgItem(IDC_BTN_CONNECT)->EnableWindow(FALSE);
  299. GetDlgItem(IDC_BTN_DISCONN)->EnableWindow(TRUE);
  300. //m_btnConn.SetWindowText("断 开");
  301. }
  302. else
  303. {
  304. mystr.Format("连接失败,返回:%d",m_hsock);
  305. GetDlgItem(IDC_BTN_CONNECT)->EnableWindow(TRUE);
  306. GetDlgItem(IDC_BTN_DISCONN)->EnableWindow(FALSE);
  307. m_hsock = 0;
  308. }
  309. }
  310. m_listCtrl.InsertString(0,mystr);
  311. UpdateData(FALSE);
  312. }
  313. //---------------------------------------------------------------------------
  314. void CVcDemoDlg::OnUpdateEnables()
  315. {
  316. UpdateData(TRUE);
  317. BOOL bBoth=m_chkboth||m_kfboth;
  318. if ((m_chksingle)&&(myflag==1)){
  319. m_chkboth=FALSE;
  320. m_kfboth=FALSE;
  321. }
  322. if ((m_chkboth)&&(myflag==2)){
  323. m_chksingle=FALSE;
  324. m_kfboth=FALSE;
  325. }
  326. if ((m_kfboth)&&(myflag==3)){
  327. m_chkboth=FALSE;
  328. m_chksingle=FALSE;
  329. }
  330. if (m_chkboth) m_btnSend.SetWindowText("增值信息");
  331. else if (m_kfboth) m_btnSend.SetWindowText("客服信息");
  332. else m_btnSend.SetWindowText("单向信息");
  333. //GetDlgItem(IDC_EDT_SERVICE_NO)->EnableWindow(m_chkboth);
  334. //GetDlgItem(IDC_EDT_FEE_CODE)->EnableWindow(m_chkboth);
  335. GetDlgItem(IDC_EDT_LINKID)->EnableWindow(m_chkboth);
  336. GetDlgItem(IDC_BTN_GET_STATUS)->EnableWindow(m_kfboth);
  337. GetDlgItem(IDC_EDT_NUM)->EnableWindow(bBoth);
  338. GetDlgItem(IDC_BTN_RECV)->EnableWindow(bBoth);
  339. GetDlgItem(IDC_EDT_SERVICE_NO)->EnableWindow(m_chkboth);
  340. GetDlgItem(IDC_EDT_FEE_CODE)->EnableWindow(m_chkboth);
  341. UpdateData(FALSE);
  342. }
  343. //---------------------------------------------------------------------------
  344. void CVcDemoDlg::OnBtnRecv()
  345. {
  346. if (m_hsock<=0) {
  347. m_listCtrl.InsertString(0,"没有连接到服务器");
  348. return;
  349. }
  350. int count =0;
  351. char msg[500][255];
  352. CString s,mystr;
  353. if(m_kfboth)
  354. {
  355. if(m_Tcp)
  356. count = MongateCsGetSms(m_hsock, msg);
  357. else
  358. count = MongateCsGetSmsHttp(m_hsock, msg);
  359. }
  360. else
  361. count =MongateVasGetSms(m_hsock, msg);
  362. s=m_chkboth?"增值端口":"客服端口";
  363. if (count == 0)
  364. {
  365. mystr.Format("%s%s",s,"没有信息可读");
  366. }
  367. else if (count > 0)
  368. {
  369. for (int i = 0; i < count; i++)
  370. {
  371. mystr.Format("%s%s%d:%s",s,"接收", i+1, msg[i]);
  372. m_listCtrl.InsertString(0,mystr);
  373. MessageBox(msg[i]);
  374. }
  375. return;
  376. }
  377. else
  378. {
  379. mystr.Format("%s%s%d",s,"接收信息失败,返回:",count);
  380. }
  381. m_listCtrl.InsertString(0,mystr);
  382. }
  383. //---------------------------------------------------------------------------
  384. void CVcDemoDlg::OnDestroy()
  385. {
  386. CDialog::OnDestroy();
  387. if (m_hsock != 0)
  388. MongateDisconnect(m_hsock);
  389. }
  390. //---------------------------------------------------------------------------
  391. void CVcDemoDlg::OnBtnSend()
  392. {
  393. UpdateData();
  394. CString mystr;
  395. if (m_hsock<=0) {
  396. m_listCtrl.InsertString(0,"没有连接到服务器");
  397. return;
  398. }
  399. int res=0;
  400. char strSN[255] = {0};
  401. if (m_chkboth)
  402. {//发送增值信息
  403. if(m_Tcp)
  404. res = MongateVasSendSms(m_hsock, m_strFeeCode, m_strServiceNo,
  405. "00********", m_strLinkID, m_strRecvMobi, m_strSendSms,1);
  406. else
  407. res = -1;
  408. if (res == 1)
  409. mystr.Format("发送增值信息成功");
  410. else
  411. mystr.Format("发送增值信息失败,返回:%d",res);
  412. }
  413. else if (m_kfboth)
  414. {//发送客服信息
  415. if(m_Tcp)
  416. {
  417. res = MongateTestMsgEx(m_hsock,m_strSendSms.GetBuffer(1200),strSN);
  418. }
  419. else
  420. {
  421. res = MongateTestMsgExHttp(m_hsock,m_strSendSms.GetBuffer(1200),strSN);
  422. }
  423. if (res == -10033)
  424. mystr.Format("检测关键字,返回:%s",strSN);
  425. res = MongateCsSPSendSmsNew(m_hsock,m_strRecvMobi.GetBuffer(2000),m_strSendSms.GetBuffer(1200),m_mobicount,"*",strSN);
  426. // if(m_Tcp)
  427. // {
  428. // res = MongateCsSendSms(m_hsock,m_strRecvMobi.GetBuffer(2000),m_strSendSms.GetBuffer(1200),m_mobicount,strSN);
  429. // }
  430. // else
  431. // {
  432. // res = MongateCsSendSmsHttp(m_hsock,m_strRecvMobi.GetBuffer(2000),m_strSendSms.GetBuffer(1200),m_mobicount,strSN);
  433. // }
  434. if (res == 1)
  435. mystr.Format("发送客服信息成功,信息编号:%s",strSN);
  436. else
  437. mystr.Format("发送客服信息失败,返回:%d",res);
  438. }
  439. else
  440. {//发送单向信息
  441. res = MongateSendSms(m_hsock,m_strRecvMobi,m_strSendSms);
  442. if (res == 1)
  443. mystr.Format("发送单向信息成功%s",strSN);
  444. else
  445. mystr.Format("发送单向信息失败,返回:%d",res);
  446. }
  447. m_listCtrl.InsertString(0,mystr);
  448. }
  449. //---------------------------------------------------------------------------
  450. void CVcDemoDlg::OnBtnQuery()
  451. {
  452. if (m_hsock<=0) {
  453. m_listCtrl.InsertString(0,"没有连接到服务器");
  454. return;
  455. }
  456. CString mystr;
  457. int m_iLeft;
  458. if(m_Tcp)
  459. m_iLeft = MongateQueryBalance(m_hsock);
  460. else
  461. m_iLeft = MongateQueryBalanceHttp(m_hsock);
  462. if (m_iLeft >= 0)
  463. mystr.Format("查询余额成功,剩余:%d",m_iLeft);
  464. else
  465. mystr.Format("查询余额失败,返回:%d",m_iLeft);
  466. m_listCtrl.InsertString(0,mystr);
  467. }
  468. //---------------------------------------------------------------------------
  469. void CVcDemoDlg::OnBTNQuery2()
  470. {
  471. //ASSERT(m_hsock);
  472. if (m_hsock<=0) {
  473. m_listCtrl.InsertString(0,"没有连接到服务器");
  474. return;
  475. }
  476. CString mystr;
  477. int m_iUsed;
  478. if(m_Tcp)
  479. m_iUsed= MongateQueryUsed(m_hsock);
  480. else
  481. m_iUsed = MongateQueryUsedHttp(m_hsock);
  482. if (m_iUsed > 0)
  483. mystr.Format("查询使用成功,已用:%d",m_iUsed);
  484. else
  485. mystr.Format("查询使用失败,返回:%d",m_iUsed);
  486. m_listCtrl.InsertString(0,mystr);
  487. }
  488. void CVcDemoDlg::OnBtnChangePwd()
  489. {
  490. if (m_hsock<=0) {
  491. m_listCtrl.InsertString(0,"没有连接到服务器");
  492. return;
  493. }
  494. UpdateData();
  495. CString mystr;
  496. int res;
  497. if(m_Tcp)
  498. res = MongateChangePwd(m_hsock, m_strLoginID, m_strLoginPwd, m_strNewPwd);
  499. else
  500. res = MongateChangePwdHttp(m_hsock, m_strLoginID, m_strLoginPwd, m_strNewPwd);
  501. if(res==1) mystr.Format("修改密码成功");
  502. else
  503. mystr.Format("修改密码失败,返回:%d",res);
  504. m_listCtrl.InsertString(0,mystr);
  505. }
  506. void CVcDemoDlg::OnBtnTestConn()
  507. {
  508. if (m_hsock<=0) {
  509. m_listCtrl.InsertString(0,"没有连接到服务器");
  510. return;
  511. }
  512. CString mystr;
  513. int res;
  514. if(m_Tcp)
  515. {
  516. res = MongateTestConn(m_hsock);
  517. }else
  518. res = MongateTestConnHttp(m_hsock);
  519. if(res==1) mystr.Format("测试连接成功");
  520. else mystr.Format("测试连接失败,返回:%d",res);
  521. m_listCtrl.InsertString(0,mystr);
  522. }
  523. void CVcDemoDlg::OnBtnGetStatus()
  524. {
  525. if (m_hsock<=0) {
  526. m_listCtrl.InsertString(0,"没有连接到服务器");
  527. return;
  528. }
  529. char strMsg[500][255] = {0};
  530. CString mystr;
  531. int count;
  532. if(m_Tcp)
  533. count= MongateCsGetStatusReport(m_hsock, strMsg);
  534. else
  535. count = MongateCsGetStatusReportHttp(m_hsock, strMsg);
  536. if (count == 0)
  537. {
  538. mystr="没有信息可读";
  539. }
  540. else if (count > 0)
  541. {
  542. for (int i=0; i < count; i++)
  543. {
  544. mystr.Format("%s%d:%s","状态报告", i+1, strMsg[i]);
  545. if(i!=count-1) m_listCtrl.InsertString(0,mystr);
  546. }
  547. }
  548. else
  549. {
  550. mystr.Format("%s%d","读取状态报告失败,返回:",count);
  551. }
  552. m_listCtrl.InsertString(0,mystr);
  553. }
  554. void CVcDemoDlg::OnChkBoth()
  555. {
  556. // TODO: Add your control notification handler code here
  557. myflag=2;
  558. OnUpdateEnables();
  559. }
  560. void CVcDemoDlg::OnChkSingle()
  561. {
  562. // TODO: Add your control notification handler code here
  563. myflag=1;
  564. m_btnSend.SetWindowText("单向信息");
  565. OnUpdateEnables();
  566. }
  567. void CVcDemoDlg::OnChkKfboth()
  568. {
  569. // TODO: Add your control notification handler code here
  570. myflag=3;
  571. OnUpdateEnables();
  572. }
  573. void CVcDemoDlg::OnBtnDisconn()
  574. {
  575. //UpdateData(TRUE);
  576. // TODO: Add your control notification handler code here
  577. if (m_hsock<=0) {
  578. m_listCtrl.InsertString(0,"没有连接到服务器");
  579. return;
  580. }
  581. CString mystr;
  582. // m_hsock = MongateConnect("server1.montnets.com", 8018, m_strLoginID,
  583. MongateDisconnect(m_hsock);
  584. mystr.Format("断开连接");
  585. GetDlgItem(IDC_BTN_CONNECT)->EnableWindow(TRUE);
  586. GetDlgItem(IDC_BTN_DISCONN)->EnableWindow(FALSE);
  587. m_hsock=0;
  588. m_listCtrl.InsertString(0,mystr);
  589. //UpdateData(FALSE);
  590. }
  591. void CVcDemoDlg::OnType()
  592. {
  593. // TODO: Add your control notification handler code here
  594. UpdateData(TRUE);
  595. //int iRet=MongateSetCmdType(m_Port);
  596. }
  597. void CVcDemoDlg::OnChkProxy()
  598. {
  599. // TODO: Add your control notification handler code here
  600. UpdateData(TRUE);
  601. if(m_bProxy)
  602. {
  603. GetDlgItem(IDC_EDIT_PROXYIP)->EnableWindow(TRUE);
  604. GetDlgItem(IDC_EDIT_PROXYPORT)->EnableWindow(TRUE);
  605. GetDlgItem(IDC_EDIT_PROXYID)->EnableWindow(TRUE);
  606. GetDlgItem(IDC_EDIT_PROXYPWD)->EnableWindow(TRUE);
  607. }
  608. else
  609. {
  610. GetDlgItem(IDC_EDIT_PROXYIP)->EnableWindow(FALSE);
  611. GetDlgItem(IDC_EDIT_PROXYPORT)->EnableWindow(FALSE);
  612. GetDlgItem(IDC_EDIT_PROXYID)->EnableWindow(FALSE);
  613. GetDlgItem(IDC_EDIT_PROXYPWD)->EnableWindow(FALSE);
  614. }
  615. }
  616. void CVcDemoDlg::OnCHECKtcp()
  617. {
  618. // TODO: Add your control notification handler code here
  619. UpdateData(TRUE);
  620. if(m_Tcp)
  621. GetDlgItem(IDC_CHECKtcp)->SetWindowText("TCP");
  622. else
  623. GetDlgItem(IDC_CHECKtcp)->SetWindowText("HTTP");
  624. }