⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demodlg.cpp

📁 中国移动短信平台开发接口库
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	case SM_RES_WAIT_ALERT:
		m_status.Format("%s", "等待ALERT");
		break;
	default:
		m_status.Format("未知状态:%d", SM_Status);

	case 0:
		m_status.Format("0 %s", "WAITING_FOR_DELIVER");
		break;
	case 1:
		m_status.Format("1 %s", "DELIVER_SUCCESS");
		break;
	case 2:
		m_status.Format("2 %s", "DELIVER_FAIL");
		break;
	default:
		m_status.Format("%d", SM_Status);

	};*/

    m_error_code.Format("%d", Error_Code);
    /*
	switch(Error_Code)
	{
	case 0:
		m_error_code.Format("0 %s","SM_STATUS_NO_ERR");
		break;
	case 1:
		m_error_code.Format("1 %s","SM_STATUS_ERR_OTHER");
		break;
	default:
		m_error_code.Format("%d", Error_Code);

	};*/
	UpdateData(FALSE);
	AfxMessageBox("Query SM Details SUCCESS!");
	if (UserData != NULL) delete UserData;
	
}

void CDemoDlg::OnCancelSM() 
{
	UpdateData(TRUE);
	CString str;
	int iRet = CancelSM(m_sm_id);
	char errstr[200];
	if (GetErrorString(iRet, 200, errstr) > 0)
		AfxMessageBox(errstr);
}

void CDemoDlg::OnReplaceSM() 
{
	UpdateData(TRUE);

	unsigned char DCS = (unsigned char)atol(m_DCS);

    int size = m_userdata.GetLength();

	char * ud = NULL;
	ud = new char[size+1];
	memset(ud, 0, size+1);
	if (ud == NULL)
        return;

    unsigned long UDLen = size;

    if ((m_UDHI == 1) && m_Binary)
    {
        AnalysisString(m_userdata, (unsigned char*)ud, size);
        UDLen = size;
    }
    else
        strcpy(ud,m_userdata);
	
	int iRet=ReplaceSM(m_sm_id,1,1,m_orgaddr,m_schedule,m_expire,DCS,m_default_id,
		UDLen,ud);

	char errstr[200];
	if (GetErrorString(iRet, 200, errstr) > 0)
		AfxMessageBox(errstr);

    delete ud;

}

void CDemoDlg::OnQueryStatus() 
{
	unsigned char SM_Status;
	unsigned char Error_Code;
	UpdateData(TRUE);
	char final[MAX_ADDR_LEN];

	char OrgAddr[MAX_ADDR_LEN];
	char DestAddr[MAX_ADDR_LEN]; 

	memset(OrgAddr, 0, MAX_ADDR_LEN);
	memset(DestAddr, 0, MAX_ADDR_LEN);
    strcpy(OrgAddr, m_orgaddr);
	strcpy(DestAddr, m_destaddr);

	int iRet = QuerySMStatus(m_sm_id,NULL,NULL,OrgAddr,NULL,NULL,DestAddr,final,&SM_Status,&Error_Code);
	if (iRet != E_SUCCESS)
	{
	//	char errstr[200];
		//if (GetErrorString(iRet, 200, errstr) > 0)
			//AfxMessageBox(errstr);

		return;
	};
	m_final.Format("%s",final);
	m_orgaddr.Format("%s",OrgAddr);
	m_destaddr.Format("%s",DestAddr);

    char sStatusStr[255];
    GetSMStatusString(SM_Status, 255, sStatusStr);
    m_status.Format("%d %s", SM_Status, sStatusStr);

    /*
	switch(SM_Status)
	{
	case WAITING_FOR_DELIVER:
		m_status.Format("%s", "WAITING_FOR_DELIVER");
		break;
	case DELIVER_SUCCESS:
		m_status.Format("%s", "DELIVER_SUCCESS");
		break;
	case DELIVER_FAIL:
		m_status.Format("%s", "DELIVER_FAIL");
		break;
	case SM_RES_WAIT_DELIVER_FOR_ERROR:
		m_status.Format("%s", "因提交失败而等待");
		break;
	case SM_RES_WAIT_DELIVER_FOR_NORMAL:
		m_status.Format("%s", "因定时短讯而等待");
		break;
	case SM_RES_WORK:
		m_status.Format("%s", "工作态");
		break;
	case SM_RES_WAIT_ALERT:
		m_status.Format("%s", "等待ALERT");
		break;
	default:
		m_status.Format("未知状态:%d", SM_Status);
	};
    */

    m_error_code.Format("%d", Error_Code);
    /*
	switch(Error_Code)
	{
	case 0:
		m_error_code.Format("0 %s","SM_STATUS_NO_ERR");
		break;
	case 1:
		m_error_code.Format("1 %s","SM_STATUS_ERR_OTHER");
		break;
	default:
		m_error_code.Format("%d", Error_Code);
	};
    */
	UpdateData(FALSE);
	AfxMessageBox("success.");

}

void CDemoDlg::OnAddSub() 
{
	UpdateData(TRUE);
	unsigned char bsm = (unsigned char)atol(m_bSM);
	unsigned char ton = (unsigned char)atol(m_TON);
	unsigned char npi = (unsigned char)atol(m_NPI);
	unsigned char mstype = (unsigned char)atol(m_mstype);
	unsigned long service = atol(m_Service);

	int iRet=AddSubscriber(ton, npi, (LPCTSTR)m_subid, (LPCTSTR)m_subname, (LPCTSTR)m_subaddr,
		mstype, service, bsm, m_ocos, m_tcos, 0, (LPCTSTR)m_subpassword);
	
	char errstr[200];
	if (GetErrorString(iRet, 200, errstr) > 0)
		AfxMessageBox(errstr);

}

void CDemoDlg::OnDelSub() 
{
	UpdateData(TRUE);
	
	int iRet=DeleteSubscriber((LPCTSTR) m_subid);

	char errstr[200];
	if (GetErrorString(iRet, 200, errstr) > 0)
		AfxMessageBox(errstr);
}

void CDemoDlg::OnModSub() 
{
	UpdateData(TRUE);
	
	unsigned char bsm = (unsigned char)atol(m_bSM);
	unsigned char ton = (unsigned char)atol(m_TON);
	unsigned char npi = (unsigned char)atol(m_NPI);
	unsigned char mstype = (unsigned char)atol(m_mstype);
	unsigned long service = atol(m_Service);

	int iRet=ModifySubscriber(ton, npi, (LPCTSTR)m_subid, (LPCTSTR)m_subname, (LPCTSTR)m_subaddr,
		mstype, service, bsm, m_ocos, m_tcos, (LPCTSTR)m_subpassword);

	char errstr[200];
	if (GetErrorString(iRet, 200, errstr) > 0)
		AfxMessageBox(errstr);
	
}

void CDemoDlg::OnQuerySub() 
{
	UpdateData(TRUE);
	char subname[100];
	char subaddr[100];
	char password[100];
	unsigned char bsm;
	unsigned char ucMstype;
	unsigned long ulService;
	unsigned char regtime[30];
	unsigned char ton, npi;
	memset(regtime, 0, 30);

	int iRet = QuerySubscriber((LPCTSTR) m_subid, &ton, &npi, subname, subaddr, &ucMstype, &ulService, &bsm, &m_ocos, &m_tcos, password, (char*)regtime);

	char errstr[200];
	if (GetErrorString(iRet, 200, errstr) > 0)
		AfxMessageBox(errstr);

	if (iRet == E_SUCCESS)
	{
		m_subname.Format("%s",subname);
		m_subaddr.Format("%s",subaddr);
		m_subpassword.Format("%s",password);
		m_mstype.Format("%d", ucMstype);
		m_RegTime.Format("%s", regtime);
		m_Service.Format("%d", ulService);
		m_bSM.Format("%d", bsm);
		m_TON.Format("%d", ton);
		m_NPI.Format("%d", npi);
		UpdateData(FALSE);
	};
}

void CDemoDlg::OnQueryMsgs() 
{
	unsigned char Dir;
	CString Addr;
	CString beginTime;
	CString finalTime;
	unsigned char smnum;
	unsigned char status;
	//unsigned long smids[20];
    unsigned long smids[100];

	UpdateData(TRUE);
	Dir=m_dir;
	Addr=m_orgaddr;
	beginTime=m_begintime;
	finalTime=m_finaltime;
	smnum=(unsigned char)m_smnum;

	CString str;
	int iRet=QuerySMS(Dir, 1, 1, Addr, beginTime, finalTime, &smnum, &status, smids);

	char errstr[200];
	if (GetErrorString(iRet, 200, errstr) > 0)
		AfxMessageBox(errstr);

	if (iRet == E_SUCCESS)
	{
		CString id;
		m_smidlist.ResetContent();
		for(int i=0; i<smnum; i++)
		{
			id.Format("%d", smids[i]);
			m_smidlist.AddString((LPCTSTR)id);
		};
		id.Format("%d",smnum);
		AfxMessageBox(id);
		UpdateData(FALSE);
	};
}

void CDemoDlg::OnDblclkList1() 
{
	UpdateData(TRUE);
	CString str;
	m_smidlist.GetText(m_smidlist.GetCurSel(), str);
	if (str.IsEmpty()) return;
	m_sm_id = atol(str);
	UpdateData(FALSE);
	
}

void CDemoDlg::OnInitialInterface() 
{
	UpdateData(TRUE);
	int iProtocol;
	CString sDrvPara;
	//sDrvPara.Format("%s %s %d", m_ip, m_port, INITIALTIME);
    WORD wPort;
    
	switch(m_protocol)
	{
	case 0:
		iProtocol = 3;			//SMPP
        if (m_port)
            wPort = (WORD)m_port;
        else
            wPort = 5016;

		sDrvPara.Format("%s %d %d", m_ip, wPort, INITIALTIME);
		break;
	case 1:
		iProtocol = 1;			//SMEI

        if (m_port)
            wPort = (WORD)m_port;
        else
            wPort = 1000;

		sDrvPara.Format("%s %d %d", m_ip, wPort, INITIALTIME);
		break;
	case 2:
		iProtocol = 5;			//Cmpp

        if (m_port)
            wPort = (WORD)m_port;
        else
            wPort = 7890;

		sDrvPara.Format("%s %d %d", m_ip, wPort, INITIALTIME);
		break;
    // 2002-09-06 hyt add for sgip
    case 3:
        iProtocol = 4;			//Sgip

        if (m_port)
            wPort = (WORD)m_port;
        else
            wPort =8801;

		sDrvPara.Format("%s %d %d", m_ip, wPort, INITIALTIME);
		break;
    default:
        ASSERT(FALSE);
        break;
    // end 2002-09-06
	};

	CComboBox* pComboBox = (CComboBox*) GetDlgItem(IDC_COMBO1);

	if (!IFInitInterface(iProtocol, 1, (LPCTSTR)sDrvPara) )
		AfxMessageBox(" initial failed!");
	else 
	{
		if (pComboBox->FindString(-1, (LPCTSTR)m_ip) == CB_ERR)
			pComboBox->AddString(m_ip);
		AfxMessageBox(" initial success!");
	};

}

void CDemoDlg::OnGetDeliverSM() 
{
	SetEvent(m_hWaitEvent);
	Sleep(200);
}

void CDemoDlg::OnAutoAck() 
{
	UpdateData(TRUE);
	if (m_bAutoAck)
	{
		SetEvent(m_hWaitEvent);
	};

}

void CDemoDlg::OnDlvSMNum(WPARAM wParam , LPARAM lParam  )
{
    // 2002.01.31 hyt change
    /*
	UpdateData(TRUE);
	int num = atoi((LPCTSTR)m_DlvSMNum);
	int i = wParam;
	num +=i;
	m_DlvSMNum.Format("%d", num);
    UpdateData(FALSE);
    */
	int num = m_ulSmNum;
	int i = wParam;
	num += i;
	m_DlvSMNum.Format("%d", num);
    m_ulSmNum = num;
    
    if (m_bSmNumFlag)
    {
	    UpdateData(FALSE);    
    }
}

void CDemoDlg::OnKillfocusEdit3() 
{
	CEdit* pEdit = (CEdit*) GetDlgItem(IDC_EDIT3);
	CString str;
	pEdit->GetWindowText(str);
	m_len = str.GetLength();
	pEdit = (CEdit*) GetDlgItem(IDC_EDIT25);
	CString szlen;
	szlen.Format("%d", m_len);
	pEdit->SetWindowText(szlen);
}

void CDemoDlg::Onvpsubmit() 
{

	unsigned char OrgTON=1, OrgNPI=1;
	unsigned char DestTON=1, DestNPI=1;
	unsigned char PRI, DCS;
	char sadd[100];
	char dadd[100];
	char schedule[100];
	char expire[100];
	unsigned long default_id=0;
	unsigned char UDHI=0;
	unsigned long UDLen;
	unsigned long SM_ID;
	unsigned char PID;
	
	
	UpdateData(TRUE);
	
	switch(m_PRI)
	{
	case 0:
		PRI=SM_PRI_DEFAULT;
		break;
	case 1:
		PRI=SM_PRI_PRIOR;
		break;
	};
	DCS = (unsigned char)atol(m_DCS);
	PID = (unsigned char)m_pid;
/*	switch(m_DCS)
	{
	case 0:
		DCS=SM_DCS_ASC;
		break;
	case 1:
		DCS=SM_DCS_CHINA;
		break;
	case 2:
		DCS=0;
		break;
	};*/
	UDLen=m_len;

	long size=m_userdata.GetLength();
	char * ud =NULL;
	ud=new char[size+1];
	memset(ud, 0, size+1);
	strcpy(ud,m_userdata);

	strcpy(schedule, m_schedule);
	strcpy(expire, m_expire);
	default_id=m_default_id;
	strcpy(sadd,m_orgaddr);
	strcpy(dadd,m_destaddr);
	
	CString str;
/*	int iRet = SubmitSM(OrgTON,OrgNPI,sadd,DestTON,DestNPI,dadd,PRI,DCS,
		schedule,expire,default_id,0, UDLen, (LPCTSTR)ud,&SM_ID,&FCS);*/
	/*	
	int iRet = VPSubmitA(sadd, dadd, DCS, PID, schedule, expire,
			default_id, (LPCTSTR)ud, &SM_ID);*/
    int iRet = VPSubmitSM(sadd, dadd, schedule, expire,
			default_id, (LPCTSTR)ud, &SM_ID);
	if (iRet != E_SUCCESS) 
	{
		char errstr[200];
		if (GetErrorString(iRet, 200, errstr) > 0)
			::MessageBox(NULL, errstr, "Submit Error Info", MB_OK|MB_ICONINFORMATION);
		delete ud;
		return;
	};

	str.Format("submit success.\n"
					"  SM ID :%u,\n", SM_ID);
	::MessageBox(NULL,str, "Submit Info", MB_OK|MB_ICONINFORMATION);
	delete ud;
	return;
	
}

void CDemoDlg::OnLogoutR() 
{
	UpdateData(TRUE);

	if (!Login_R(m_system_id, m_password))   //m_system_id 登陆帐号变量。
		AfxMessageBox("login failed.");      //m_password 登陆帐号的密码。	
	else 
    {
		AfxMessageBox("login success.");
        CString strText;
        strText.Format("Demo - %s", m_system_id);
        SetWindowText(strText);
    };
	
}

BOOL AnalysisString(LPCTSTR lpszBuf, BYTE* SendData, int& iSize)
{
	char szTemp[20];
	int iIndex = 0;
	int iTempSize = 20;
	DWORD dwData = 0;
	int iDataIndex = 0;
	int iRet;

	while ((iRet = GetValidString(lpszBuf, iIndex, szTemp, iTempSize)) == 0)
	{
		if (sscanf(szTemp, "%x", &dwData) == 0)
		{
			AfxMessageBox("sscanf error.");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -