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

📄 demodlg.cpp

📁 中国移动长短信接收发送的网关系统工程源程序代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	count = ret_l.getCount();
	for (int i=0; i<count; i++)
	{
		CMSGResult* r = ret_l.getItem(i);

		if (!r) continue;
		r->restort_submit();
		if (!r->SENDERR && !r->UNGETRESP)
			AfxMessageBox("OK");
		else
			{
			CString str;
			str.Format("发送错误\n错误个数 :%d\n 没有回应个数: %d",r->SENDERR,r->UNGETRESP);
			AfxMessageBox(str);
		}
	}
}
*/

void CDemoDlg::OnBtnLongSub() 
{
	// TODO: Add your control notification handler code here
	int err = 0;
    CString str;

	UpdateData();
//	CMSGResult* ret;
	CMPP_SUBMIT sb_l;		                    //长短信
	strcpy((char*)sb_l.sSrcId , m_src);
	strcpy((char*)sb_l.sDestTerminalId , m_dest);
	strcpy((char*)sb_l.sMsgSrc , m_strSpid);//
	strcpy((char*)sb_l.sServiceId,m_serviceid);
	strcpy((char*)sb_l.sFeeType , m_feetype);
	strcpy((char*)sb_l.sFeeCode , m_feecode);
	strcpy((char*)sb_l.nFeeTerminaleId , m_feenumber);
	strcpy((char*)sb_l.sAtTime,m_attime);
	strcpy((char*)sb_l.sDestTerminalId , m_dest);

	sb_l.cRegisteredDelivery = 1;              //返回状态报告,非1则没有任何状态返回
	sb_l.cMsgFmt = 0x08;
	sb_l.cTpUdhi = 1;


	ConfigTimeLSubmitTime(200);
//	str.Format("%s",m_content.GetBuffer(0));
//	AfxMessageBox(str);

	int msgcount = Cmpp_submit(&sb_l,m_content.GetBuffer(0),m_content.GetLength(),ret);

	if(msgcount <=0 )
	{
		AfxMessageBox("发送过程出现异常!");
	
		str.Format("发送错误:%d",msgcount);
		AfxMessageBox(str);
		return;
	}
	else
	{
		str.Format("分割成的子短信数目%d",msgcount);
		AfxMessageBox(str);
	}

	CString errStr ="123456" ;         //错误字符串
	errStr.Format("%d",ret->getCount());
	AfxMessageBox(errStr);
	err = Cmpp_query(ret,&errStr);

	if(err<0)
	{
		AfxMessageBox("尚未接收到返回信息");
		return ;
	}

 	if(ret->SENDERR!=0||ret->UNGETRESP!=0)
	{
			
		str.Format("发送错误\n错误个数 :%d\n 没有回应个数: %d\n",ret->SENDERR,ret->UNGETRESP);
		AfxMessageBox(str+errStr);
	}
	else
	{
		AfxMessageBox("OK");
	}

}

void CDemoDlg::OnBtnQuery() 
{
	// TODO: Add your control notification handler code here


	CMPP_QUERY qy;
	CMPP_QUERY_RESP resp;
	
	CString str;

	CTime time = CTime::GetCurrentTime();
	strcpy((char*)qy.sTime,time.Format("%Y%m%d"));

	int err = Cmpp_queryA(&qy,&resp);

	if(err<0)
	{
		AfxMessageBox("查询失败");
		return;
	}

	str.Format("MT_TLMsg:%d\n MT_Tlusr:%d\n MT_Scs%d\n MT_WT:%d\n MT_FL:%d\n MO_Scs:%d\n MO_WT:%d\n",
		resp.nMTTLMsg,								//	
		resp.nMTTlusr,									//
		resp.nMTScs,
		resp.nMTWT,
		resp.nMTFL,
		resp.nMOScs,
		resp.nMOWT
		);

		AfxMessageBox(str);

}
/*
void CDemoDlg::OnBtnLongQuery() 
{
	//TODO: Add your control notification handler code here

	int count = 0;
	Cmpp_query_report(ret_l,int count);

	//int count = ret_l[0].getCount();
	for (int i=0; i<count; i++)
	{
		CMSGResult* r = ret_l.getItem(i);
		r->restort_deliver();
		if (!r) continue;
		CString strTmp;

		strTmp.Format("DELIVRD:%d\n EXPIRED:%d\n DELETED%d\n ACCEPTD:%d\n UNKNOWN:%d\n REJECTD:%d\n UNDELIV%d\nUNGETDLV: %d\n",
			r->DELIVRD,								//	
			r->EXPIRED,									//
			r->DELETED,
			r->ACCEPTD,
			r->UNKNOWN,
			r->REJECTD,
			r->UNDELIV,
			r->UNGETDLV
			);

			AfxMessageBox(strTmp);
	}

}
*/

void CDemoDlg::OnBtnLongQuery() 
{
	//TODO: Add your control notification handler code here

	//CMSGResult* ret;
    unsigned char curMsgID[8]={0};
	strcpy((char*)curMsgID,(char*)Cmpp_GetMsgID());

	Cmpp_query_report(ret);
	
	CString strTmp;

	strTmp.Format("DELIVRD:%d\n EXPIRED:%d\n DELETED%d\n ACCEPTD:%d\n UNKNOWN:%d\n REJECTD:%d\n UNDELIV%d\nUNGETDLV: %d\n",
		ret->DELIVRD,								//	
		ret->EXPIRED,									//
		ret->DELETED,
		ret->ACCEPTD,
		ret->UNKNOWN,
		ret->REJECTD,
		ret->UNDELIV,
		ret->UNGETDLV
		);

		AfxMessageBox(strTmp);

}

void CDemoDlg::OnBtnCancel() 
{
	// TODO: Add your control notification handler code here
	//char* msgid;
	int err;
    CString str;
	unsigned char result =-1;
    unsigned char curMsgID[8]={0};
	//strcpy((char*)MsgID,(char*)msgid);

	strcpy((char*)curMsgID,(char*)Cmpp_GetMsgID());

	err = Cmpp_cancel(curMsgID,&result);
	
 
	if(result ==0||result == 255)
		AfxMessageBox("删除当前短信成功!");
	else
		AfxMessageBox("删除当前短信失败!");

}

void CDemoDlg::OnBtnLongCancel() 
{
	// TODO: Add your control notification handler code here

	int err;
    CString str;
	unsigned char result =-1;
    unsigned char curMsgID[8]={0};


	strcpy((char*)curMsgID,(char*)Cmpp_GetMsgID());

	err = Cmpp_cancel(curMsgID,&result);
	
 
	if(result ==0||result == 255)
		AfxMessageBox("删除当前短信成功!");
	else
		AfxMessageBox("删除当前短信失败!");

}

void CDemoDlg::OnBtnCheckDeliver() 
{
	// TODO: Add your control notification handler code here
	int ret;
	ret = Cmpp_Check_Deliver(20);

	CString strTmp;
	strTmp.Format("Deliver Count(%d)",ret);
	AfxMessageBox(strTmp);
}

void CDemoDlg::OnBtnGetDeliver() 
{
	// TODO: Add your control notification handler code here
	CMPP_DELIVER dev;
	int err = Cmpp_Get_Deliver(&dev);
	
	CString strTmp;
	char msgid[100],serviceid[100];
	char tppid[100],tpudhi[100],msgfmt[100],srcnumber[100];
	char delivery[100],msglen[100],msgcontent[400];
	char LinkID[100];

    printf("\nRecieve Data.\n");
    //memcpy((void *)dev.LinkID,(void *)(dev.msgcontent+dev.msglen),20);
    dev.sMsgContent[dev.cMsgLen]=0x0;
	//dev.nMsgId
    //dev.deliver.LinkID[20]='\0';
    //printf("  Size: %d\n",ntohl(pkg.head.size));
    //printf("  cmdid: %d\n",ntohl(pkg.head.cmdid));
    //printf("  seqid: %d\n",ntohl(pkg.head.seqid));
    sprintf(msgid,"  msgid: %s\n",dev.nMsgId);
    sprintf(serviceid,"  serviceid : %s\n",dev.sServiceId );
    sprintf(tppid,"  tppid: %d\n",dev.cTpPid);
    sprintf(tpudhi,"  tpudhi: %d\n",dev.cTpUdhi);
    sprintf(msgfmt,"  msgfmt: %d\n",dev.cMsgFmt);
    sprintf(srcnumber,"  srcnumber : %s\n",dev.sSrcTermId );
    //sprintf(srctype,"  srctype: %d\n",dev.);
    sprintf(delivery,"  delivery: %d\n",dev.cRegisteredDelivery);
    sprintf(msglen,"  msglen: %d\n",dev.cMsgLen);
    sprintf(msgcontent,"  msgcontent: %s\n",dev.sMsgContent);
    sprintf(LinkID,"  Reserve    : %s\n",dev.sReserve);

	strTmp.Format(" GetDeliver err(%d)\n%s%s%s%s%s%s%s%s%s%s",err,
		msgid,serviceid,tppid,
		tpudhi,msgfmt,srcnumber,
		delivery,msglen,msgcontent,LinkID);
	AfxMessageBox(strTmp);
}

void CDemoDlg::OnChangeEditContent() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	UpdateData();
	
	CString str;
	str.Format("Content(%d)",m_content.GetLength());
	GetDlgItem(IDC_STATIC_CONTENT)->SetWindowText(str);

}

//DEL void CDemoDlg::OnButtonResend() 
//DEL {
//DEL 	// TODO: Add your control notification handler code here
//DEL 	//ret_l.getErrSerialArray();
//DEL /*	Cmpp_ResendA(&sb_l,&ret_l,&map_l);
//DEL 	char* pdata = 0;
//DEL 
//DEL 	for (int i=0; i<map_l.getCount(); i++)
//DEL 	{
//DEL 		pdata = map_l.getMapContent(i);
//DEL 		AfxMessageBox(pdata);
//DEL 	}*/
//DEL }

void CDemoDlg::OnButtonResend() 
{
	// TODO: Add your control notification handler code here
	//ret_l.getErrSerialArray();

	CMPP_SUBMIT sb;			//短信发送体
	CString str;

	sb.cRegisteredDelivery = 1;                //返回状态报告
	
	strcpy((char*)sb.sSrcId , m_src);          //业务ID
	strcpy((char*)sb.sMsgSrc ,m_strSpid );     //服务ID
	strcpy((char*)sb.sServiceId,m_serviceid);  //SERVICE_ID
	strcpy((char*)sb.sFeeType , m_feetype);    //收费类型
	strcpy((char*)sb.sFeeCode , m_feecode);    //收费代码
	strcpy((char*)sb.nFeeTerminaleId , m_feenumber);
	strcpy((char*)sb.sAtTime, m_attime);
	strcpy((char*)sb.sDestTerminalId , m_dest);  //终端号码
		
	int msgcount = Cmpp_Resend(&sb,ret,true);


	if(msgcount<0)
	{
		str.Format("重发失败%d",msgcount);
		AfxMessageBox(str);
		return;
	}
	else
	{
		str.Format("重发条数:%d",msgcount);
		AfxMessageBox(str);
	}
 
	CString errStr="";         //错误字符串
	int err = Cmpp_query(ret,&errStr);

    if(err<0)
	{
		AfxMessageBox("尚未接收到返回信息");
		return ;
	}

 	if(ret->SENDERR!=0||ret->UNGETRESP!=0)
	{
			
		str.Format("发送错误\n错误个数 :%d\n 没有回应个数: %d\n",ret->SENDERR,ret->UNGETRESP);
		AfxMessageBox(str+errStr);
	}
	else
	{
		AfxMessageBox("OK");
	} 

}

void CDemoDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	
}

void CDemoDlg::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	CDialog::OnClose();
}

⌨️ 快捷键说明

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