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

📄 otherdemodlg.cpp

📁 wavecom 短信猫开发示例 二次开发包
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	g_spiModemService->GetWaitSend(VARIANT_FALSE,&varWaitCount);
	varWaitCount.ChangeType(VT_I2);
	CString strWaitCount(_T(""));
	m_iWaitCount=varWaitCount.iVal;
	UpdateData(FALSE);
}

void COtherDemoDlg::OnDemoGettransfer() 
{
	// TODO: Add your control notification handler code here
	if(g_spiModemService==NULL)
		return;
	XTTSMSCOM::EMobileModemStatus eModemStatus=XTTSMSCOM::UNINIT_STATUS;
	g_spiModemService->get_ModemStatus(&eModemStatus);
	if(eModemStatus<XTTSMSCOM::OK_STATUS)
	{
		::MessageBox(this->GetSafeHwnd(),_T("还没有正常连接短信猫!"),XTTSOFT_SMS_APPNAME,MB_OK);
		return;
	}
	CComVariant varCallTransfer;
	g_spiModemService->GetCallTransfer(&varCallTransfer);
	if(varCallTransfer.vt!=VT_BSTR || varCallTransfer.bstrVal==NULL)
		return;
	m_strTransferInfo=varCallTransfer.bstrVal;
	varCallTransfer.Clear();
	MSXML2::IXMLDOMDocumentPtr spiTransferDoc=NULL;
	CoCreateInstance(MSXML2::CLSID_DOMDocument,NULL,CLSCTX_INPROC_SERVER,
		 MSXML2::IID_IXMLDOMDocument,(void**)&spiTransferDoc);
	if(spiTransferDoc!=NULL)
	{
		VARIANT_BOOL bLoadFlag=VARIANT_FALSE;
		spiTransferDoc->loadXML(m_strTransferInfo.AllocSysString(),&bLoadFlag);
		if(bLoadFlag==VARIANT_TRUE)
		{
			//解析日志
		}
		spiTransferDoc=NULL;
	}
	UpdateData(FALSE);
}

void COtherDemoDlg::OnDemoSettransfer() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(g_spiModemService==NULL)
		return;
	XTTSMSCOM::EMobileModemStatus eModemStatus=XTTSMSCOM::UNINIT_STATUS;
	g_spiModemService->get_ModemStatus(&eModemStatus);
	if(eModemStatus<XTTSMSCOM::OK_STATUS)
	{
		::MessageBox(this->GetSafeHwnd(),_T("还没有正常连接短信猫!"),XTTSOFT_SMS_APPNAME,MB_OK);
		return;
	}
	VARIANT_BOOL bSetFlag=VARIANT_FALSE;
	CComVariant varCallTransfer(m_strTransferInfo);//呼叫转移信息以xml格式描述
	g_spiModemService->SetCallTransfer(varCallTransfer,&bSetFlag);
	if(bSetFlag==VARIANT_TRUE)
		::MessageBox(this->GetSafeHwnd(),_T("设置呼叫转移成功!"),XTTSOFT_SMS_APPNAME,MB_OK);
	else
		::MessageBox(this->GetSafeHwnd(),_T("设置呼叫转移失败!"),XTTSOFT_SMS_APPNAME,MB_OK);
}

void COtherDemoDlg::OnDemoSmsdb() 
{
	// TODO: Add your control notification handler code here
	if(g_spiModemService==NULL)
		return;
	CComVariant varXmlFile(m_strXmlFile);
	VARIANT_BOOL bSetFlag=VARIANT_FALSE;
	g_spiModemService->SetDbInterface(XTTSMSCOM::FILE_PARATYPE,varXmlFile,&bSetFlag);
	if(bSetFlag==VARIANT_TRUE)
		::MessageBox(this->GetSafeHwnd(),_T("设置数据库接口成功!"),XTTSOFT_SMS_APPNAME,MB_OK);
	else
		::MessageBox(this->GetSafeHwnd(),_T("设置数据库接口失败!"),XTTSOFT_SMS_APPNAME,MB_OK);
}

void COtherDemoDlg::OnDemoSendwappush() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(g_spiModemService==NULL)
		return;
	XTTSMSCOM::EMobileModemStatus eModemStatus=XTTSMSCOM::UNINIT_STATUS;
	g_spiModemService->get_ModemStatus(&eModemStatus);
	if(eModemStatus<XTTSMSCOM::OK_STATUS)
	{
		::MessageBox(this->GetSafeHwnd(),_T("还没有正常连接短信猫!"),XTTSOFT_SMS_APPNAME,MB_OK);
		return;
	}
	m_strSendTo.TrimLeft();
	m_strSendTo.TrimRight();
	m_strWapushUrl.TrimLeft();
	m_strWapushUrl.TrimRight();
	if(m_strSendTo.IsEmpty()==TRUE || m_strWapushUrl.IsEmpty()
		|| m_strWapushContent.IsEmpty()==TRUE)
	{
		::MessageBox(this->GetSafeHwnd(),_T("参数错误!"),XTTSOFT_SMS_APPNAME,MB_OK);
		return;
	}
	if(m_bAsynSend==TRUE)
		g_spiModemService->put_WorkMode(XTTSMSCOM::ASYNCHRONOUS_WORKMODE);//设为无阻塞模式发送
	else
		g_spiModemService->put_WorkMode(XTTSMSCOM::SYNCHRONOUS_WORKMODE);//阻塞模式发送
	int iFind=-1;
	BOOL bGroupFlag=FALSE;
	iFind=m_strSendTo.Find(_T(";"));
	if(iFind!=-1)
		bGroupFlag=TRUE;
	CString strMsgID(_T(""));
	CComVariant varMsgID;
	g_spiModemService->CreateUniqueID(&varMsgID);
	if(varMsgID.vt==VT_BSTR && varMsgID.bstrVal!=NULL)
		strMsgID=varMsgID.bstrVal;
	varMsgID.Clear();
	if(strMsgID.IsEmpty()==TRUE)
	{
		::MessageBox(this->GetSafeHwnd(),_T("生成短信ID失败!"),XTTSOFT_SMS_APPNAME,MB_OK);
		return;
	}
	m_arrSendTo.RemoveAll();
	//将发送的短信入库...
	m_arrSendTo.Add(m_strSendTo);
	XTTSMSCOM:: EMobileMsgType eWapType=XTTSMSCOM::PUSH_WAP_SI_MSGTYPE;
	if(m_bPushIndication==FALSE)
	{
		m_strWapushContent.Empty();
		eWapType=XTTSMSCOM::PUSH_WAP_SL_MSGTYPE;//表示发送wap业务装载短信
	}
	CString strSignName(_T(""));
	if(eWapType!=XTTSMSCOM::PUSH_WAP_SL_MSGTYPE && m_strSignName.IsEmpty()==FALSE)
		strSignName.Format(_T("[%s]:"),m_strSignName);
	//执行发送
	CComVariant varSplitCount,varReserved;//拆分的数量
	varReserved.Clear();
	varReserved.vt=VT_I2;
	varReserved.iVal=m_sAction;//设置接收动作
	if(bGroupFlag==FALSE)
	{
		XTTSMSCOM::EMobileMsgStatus eMsgStatus=XTTSMSCOM::UNKNOWN_MSGSTATUS;
		g_spiModemService->SendPushMsg(strMsgID.AllocSysString(),m_strSendTo.AllocSysString(),m_strWapushUrl.AllocSysString(),m_strWapushContent.AllocSysString(),&varSplitCount,varReserved,eWapType,strSignName.AllocSysString(),m_lValidMinute,m_sSendPri,VARIANT_FALSE,VARIANT_FALSE,&eMsgStatus);
		varSplitCount.ChangeType(VT_I2);
		m_sSplitCount=varSplitCount.iVal;
		//iSplitCount为1表示没有拆分
		if(m_bAsynSend==FALSE)
		{
			if(eMsgStatus==XTTSMSCOM::SENTOK_MSGSTATUS)
				::MessageBox(this->GetSafeHwnd(),_T("发送成功!"),XTTSOFT_SMS_APPNAME,MB_OK);
			else
			{
				CComVariant varErrDes;
				XTTSMSCOM::EMobileErrorType eErrType=XTTSMSCOM::OK_ERRTYPE;
				g_spiModemService->GetLastError(&varErrDes,&eErrType);//得到错误信息
				CString strErrInfo(_T(""));
				if(varErrDes.vt==VT_BSTR && varErrDes.bstrVal!=NULL)
					strErrInfo.Format(_T("发送失败!错误码为%d,错误信息为 %s"),eErrType,(CString )varErrDes.bstrVal);
				else
					strErrInfo=_T("发送失败!");
				::MessageBox(this->GetSafeHwnd(),strErrInfo,XTTSOFT_SMS_APPNAME,MB_OK);
			}
		}
		//无阻塞模式发送结果由事件通知
		return;
	}
	//群发
	COleVariant varSendTo(m_strSendTo);//可以直接是以分号“;”分割的字符串
	varSendTo.ChangeType(VT_BSTR);
	g_spiModemService->SendGroupPushMsg(strMsgID.AllocSysString(),varSendTo,m_strWapushUrl.AllocSysString(),m_strWapushContent.AllocSysString(),varReserved,eWapType,strSignName.AllocSysString(),m_lValidMinute,m_sSendPri,VARIANT_FALSE,VARIANT_FALSE,&varSplitCount);
	varSplitCount.ChangeType(VT_I2);
	m_sSplitCount=varSplitCount.iVal;
	
}

void COtherDemoDlg::OnOK() 
{
	// TODO: Add extra validation here
	//退出对话框

	CDialog::OnOK();
}

void COtherDemoDlg::OnDemoBrowse() 
{
	// TODO: Add your control notification handler code here
	//浏览获得数据库配置xml文件路径
	CString strExt(_T("XML File(*.xml)|*.xml|")),strFileName=m_strXmlFile;
	CFileDialog BrowseDlg(FALSE,_T("xml"),NULL,OFN_HIDEREADONLY,strExt,this);
	BrowseDlg.m_ofn.lpstrInitialDir=(LPCTSTR)strFileName;
	int iRet=BrowseDlg.DoModal();
	strExt.Empty();
	if(IDOK!=iRet)
		return;
	UpdateData(TRUE);
	m_strXmlFile=BrowseDlg.GetPathName();
	UpdateData(FALSE);
}

void COtherDemoDlg::OnDemoPushwapind() 
{
	// TODO: Add your control notification handler code here
	int iSize=m_ctlAction.GetCount();
	for(int index=0;index<iSize;index++)
		m_ctlAction.DeleteString(0);
	m_bPushIndication=!m_bPushIndication;
	if(m_bPushIndication==TRUE)
	{
		m_ctlContent.EnableWindow(TRUE);
		m_ctlSignName.EnableWindow(TRUE);
		m_ctlValidMinute.EnableWindow(TRUE);
		m_ctlAction.AddString(_T("信号-无"));
		m_ctlAction.AddString(_T("信号-低"));
		m_ctlAction.AddString(_T("信号-中等"));
		m_ctlAction.AddString(_T("信号-高"));
		m_ctlAction.AddString(_T("信号-删除"));
		m_sAction=3;
	}
	else
	{
		m_ctlAction.AddString(_T("执行-高"));
		m_ctlAction.AddString(_T("执行-低"));
		m_ctlAction.AddString(_T("缓存"));
		m_sAction=0;
		m_ctlContent.EnableWindow(FALSE);
		m_ctlSignName.EnableWindow(FALSE);
		m_ctlValidMinute.EnableWindow(FALSE);
	}
	UpdateData(FALSE);
}

⌨️ 快捷键说明

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