Windows Mobile 实现发送短信
2010-08-22 13:00:00 来源:WEB开发网_tcslen(lpszMessage) * sizeof(TCHAR), (PBYTE) &tpsd,
sizeof(TEXT_PROVIDER_SPECIFIC_DATA), SMSDE_OPTIMAL,
SMS_OPTION_DELIVERY_NONE, &smsmidMessageID)))
{
MessageBox(NULL,
(LPCTSTR)LoadString(ghInstance, IDS_SMSSENT, 0, 0),
(LPCTSTR)LoadString(ghInstance, IDS_CAPTION_SUCCESS, 0, 0),
MB_OK);
}
else
{
MessageBox(NULL,
(LPCTSTR)LoadString(ghInstance, IDS_ERROR_SMSSEND, 0, 0),
(LPCTSTR)LoadString(ghInstance, IDS_CAPTION_ERROR, 0, 0),
MB_OK | MB_ICONERROR);
}
// clean up
VERIFY(SUCCEEDED(SmsClose(smshHandle)));
}
这段代码在一般情况下是运行正确的,对于手机与手机的发送是不存在问题的,但是与SP的交互在某些省区就存在短信发送不出去的情况。
为了更好的理解这段代码,我们先来熟悉一下SmsSendMessage及各个参数。
SmsSendMessage
功能:Use the SmsSendMessage function to create and send an Short Message Service (SMS) message.(创建和发送短信,但短信发送后并不保存到发件箱中)
原型:
HRESULT SmsSendMessage (
const SMS_HANDLE smshHandle, // 调用SmsOpen时获得的短信句柄
const SMS_ADDRESS * const psmsaSMSCAddress, //指向短信中心号码的地址
const SMS_ADDRESS * const psmsaDestinationAddress, // 发送的目的地址
const SYSTEMTIME * const pstValidityPeriod, // 发送时间的有效期
const BYTE * const pbData, // 信息的内容部分
const DWORD dwDataSize,// 信息内容的长度
const BYTE * const pbProviderSpecificData, //运营商的附加数据
const DWORD dwProviderSpecificDataSize, // 附加数据的长度
const SMS_DATA_ENCODING smsdeDataEncoding, // 短信编码
const DWORD dwOptions, // 其他选项
SMS_MESSAGE_ID * psmsmidMessageID); // 用于得到系统回执的信息
(具体介绍可查看http://msdn.microsoft.com/en-us/library/aa455068.aspx)
更多精彩
赞助商链接