📄 specsmsdlg.cpp
字号:
// SpecSmsDlg.cpp : implementation file
//
#include "stdafx.h"
#include "CallSmsCom.h"
#include "SpecSmsDlg.h"
#include "XTTBasicDef.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern XTTSMSCOM::IModemServicePtr g_spiModemService;
/////////////////////////////////////////////////////////////////////////////
// CSpecSmsDlg dialog
CSpecSmsDlg::CSpecSmsDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSpecSmsDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSpecSmsDlg)
m_strName = _T("搜狐");
m_strWebUrl = _T("http://wap.sohu.com");
m_strSendTo = _T("13801155369");
m_iMsgType = 1;
m_bAsynSend = TRUE;
//}}AFX_DATA_INIT
}
void CSpecSmsDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSpecSmsDlg)
DDX_Control(pDX, IDOK, m_ctlOK);
DDX_Control(pDX, IDC_SPECSMS_COMMIT, m_ctlCommit);
DDX_Text(pDX, IDC_SPECSMS_NAME, m_strName);
DDX_Text(pDX, IDC_SPECSMS_WEBURL, m_strWebUrl);
DDX_CBIndex(pDX, IDC_SPECSMS_TYPE, m_iMsgType);
DDX_Check(pDX, IDC_SPECSMS_ASYNSEND, m_bAsynSend);
DDX_Text(pDX, IDC_SPECSMS_SENDTO, m_strSendTo);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSpecSmsDlg, CDialog)
//{{AFX_MSG_MAP(CSpecSmsDlg)
ON_BN_CLICKED(IDC_SPECSMS_COMMIT, OnSpecsmsCommit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSpecSmsDlg message handlers
BOOL CSpecSmsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSpecSmsDlg::OnSpecsmsCommit()
{
// TODO: Add your control notification handler code here
if(g_spiModemService==NULL)
return;
UpdateData(TRUE);
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_strWebUrl.TrimLeft();
m_strWebUrl.TrimRight();
if(m_strSendTo.IsEmpty()==TRUE || m_strWebUrl.IsEmpty()
|| m_strName.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;
m_strMsgID.Empty();
CComVariant varMsgID;
g_spiModemService->CreateUniqueID(&varMsgID);
if(varMsgID.vt==VT_BSTR && varMsgID.bstrVal!=NULL)
m_strMsgID=varMsgID.bstrVal;
varMsgID.Clear();
if(m_strMsgID.IsEmpty()==TRUE)
{
::MessageBox(this->GetSafeHwnd(),_T("生成短信ID失败!"),XTTSOFT_SMS_APPNAME,MB_OK);
return;
}
//将发送的短信入库...
XTTSMSCOM:: EMobileMsgType eWapType=XTTSMSCOM::PUSH_OTA_BOOKMARK_MSGTYPE;//发送OTA书签
if(m_iMsgType==1)
eWapType=XTTSMSCOM::PUSH_OTA_GPRSCONFIG_MSGTYPE;//表示发送OTA服务GPRS配置
else if(m_iMsgType==2)
eWapType=XTTSMSCOM::PUSH_OMA_CONFIG_MSGTYPE;//表示发送OMA服务GPRS配置
CString strSignName(_T(""));
//执行发送
CComVariant varSplitCount,varReserved;//拆分的数量
varReserved.Clear();
if(bGroupFlag==FALSE)
{
XTTSMSCOM::EMobileMsgStatus eMsgStatus=XTTSMSCOM::UNKNOWN_MSGSTATUS;
g_spiModemService->SendPushMsg(m_strMsgID.AllocSysString(),m_strSendTo.AllocSysString(),\
m_strWebUrl.AllocSysString(),m_strName.AllocSysString(),&varSplitCount,varReserved,eWapType,\
strSignName.AllocSysString(),0,16,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(m_strMsgID.AllocSysString(),varSendTo,m_strWebUrl.AllocSysString(),\
m_strName.AllocSysString(),varReserved,eWapType,strSignName.AllocSysString(),0,16,VARIANT_FALSE,\
VARIANT_FALSE,&varSplitCount);
varSplitCount.ChangeType(VT_I2);
m_sSplitCount=varSplitCount.iVal;
}
void CSpecSmsDlg::OnOK()
{
// TODO: Add extra validation here
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -