短信留在发件箱里面无法发送问题
来源:互联网 发布:win10仿mac桌面插件 编辑:程序博客网 时间:2024/06/12 01:09
最近碰到某个WM手机无法MAPI程序发短信的问题,短信一直留在发件箱里面无法发送,但系统的程序的确是可以的,分析了一下,可能是MAPI调用的问题,但无论怎么改设置过的字段和内容都无法解决。想了一下,打算模拟系统发短信的过程,既然是模拟首先得知道系统是怎么发,发了什么内容。所以第一步,得做一个MAPI监控对象:
监控一下短信:
void CXXXX::RegSMSSink()
{
HRESULT hr = S_OK;
//CdingStar: 把想得到的字段都加上,看系统是怎么变的:
ULONG uEventMask = fnevNewMail | fnevObjectCreated | fnevObjectDeleted |fnevObjectMoved |
fnevObjectModified | fnevObjectCopied | fnevTableModified | fnevStatusObjectModified | fnevReservedForMapi | fnevExtended | fnevCriticalError ;
//CdingStar: 这里新建一个短信对象 class CSMSAdviseSink : public IMAPIAdviseSink{...}
m_pSink = new CSMSAdviseSink();
//SMS Store
ASSERT(m_pMsgStore);
if(m_pMsgStore && m_pSink)
{
m_pSink->SetMsgStore(m_pMsgStore);
hr = m_pMsgStore->Advise(0, NULL, uEventMask, m_pSink, &m_ulAdviseSink); //注册接口
}
}
重载SMS SINK消息接收通知:
MAPIMETHOD_(ULONG,OnNotify)(ULONG cNotif, LPNOTIFICATION lpNotifications);
ULONG CSMSAdviseSink::OnNotify(ULONG cNotif, LPNOTIFICATION lpNotifications)
{
for(int i = 0; i < (int)cNotif; ++i)
{
//Message变化的类型,如新建短信,删除短信,修改
switch(lpNotifications[i].ulEventType)
{
case fnevObjectCreated:
//不知何故pNotify->lpEntryID的EntryID居然和pMessage里面query到的EntryID不一样
break;
case fnevObjectDeleted:
break;
case fnevObjectMoved:
break;
case fnevObjectModified:
//CdingStar:修改的变化主要就这里,得查看系统发送时候修改了什么
//lpNotifications[i].info.obj.lpPropTagArray是发生改变的属性值列表
//后面的等下再加,貌似调试发现2个过程结果差异很大啊
- 短信留在发件箱里面无法发送问题
- 短信留在发件箱里面无法发送问题 续2
- 【Android】无法发送短信的问题
- mx4 无法发送短信
- android 发送短信问题
- 短信发送问题
- 关于发送短信的问题
- Android发送短信字数问题
- Android发送短信字数问题
- iWebSMS2000短信发送问题记录
- 关于友盟分享成功以后,点击"留在QQ","留在微信"...无法判断分享是否成功问题
- MOTO V501无法通过AT指令发送短信引起的问题
- Nagios无法发送短信和邮件
- GPRS发送中文短信的问题
- Android发送短信的字数问题
- 基于SMGP协议短信发送速度问题
- 基于SMGP协议短信发送速度问题 .
- android 发送短信的拦截问题探索
- 《诗盗·风鹏》
- DataSet DataTable操作
- 给自己的鼓励
- dblink配置
- 人的一生最后悔什么
- 短信留在发件箱里面无法发送问题
- 未来软件发展的方向
- 迷
- C#实现自动锁屏+关屏
- 格言
- 用mciSendString制作可播放MPEG,AVI,WAV,MP3等的播放器
- 在Struts2中实现文件上传
- 对技术面试的一些心得
- 初探云技术