📄 otherdemodlg.cpp
字号:
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 + -