Windows Mobile SMS发送操作代码
2010-01-28 09:19
190 查看
在windows mobile中发送SMS主要需要调用以下两个API:
在一本书的光盘代码里面有发送短信的函数,在很大程度上简化了操作--只要能用这个函数就行了。通过这个函数也能能搞明白发送SMS的代码是怎么回事儿了。
各个参数意义如下:bSendConfirmation 是否接受确认消息
bUserDefaultSMSC 是否使用默认短消息信息中心号码
lpszSMSC 短信中心的号码
lpszRecipient 信息接受方号码
lpszMessage 所发送的文本信息
HRESULT SmsOpen ( const LPCTSTR ptsMessageProtocol, const DWORD dwMessageModes, SMS_HANDLE* const psmshHandle, HANDLE* const phMessageAvailableEvent); HRESULT SmsSendMessage ( const SMS_HANDLE smshHandle, 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);
在一本书的光盘代码里面有发送短信的函数,在很大程度上简化了操作--只要能用这个函数就行了。通过这个函数也能能搞明白发送SMS的代码是怎么回事儿了。
各个参数意义如下:bSendConfirmation 是否接受确认消息
bUserDefaultSMSC 是否使用默认短消息信息中心号码
lpszSMSC 短信中心的号码
lpszRecipient 信息接受方号码
lpszMessage 所发送的文本信息
void SendSMS(BOOL bSendConfirmation, BOOL bUseDefaultSMSC, LPCTSTR lpszSMSC, LPCTSTR lpszRecipient, LPCTSTR lpszMessage) { SMS_HANDLE smshHandle; SMS_ADDRESS smsaSource; SMS_ADDRESS smsaDestination; TEXT_PROVIDER_SPECIFIC_DATA tpsd; SMS_MESSAGE_ID smsmidMessageID=0; HRESULT hr=0; // 打开SMS if(FAILED(SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, &smshHandle, NULL))) { MessageBox(NULL, (LPCTSTR)LoadString(ghInstance, IDS_ERROR_SMSOPEN, 0, 0), (LPCTSTR)LoadString(ghInstance, IDS_CAPTION_ERROR, 0, 0), MB_OK | MB_ICONERROR); return; } // 建立短信中心地址(号码) if(!bUseDefaultSMSC) { smsaSource.smsatAddressType = SMSAT_INTERNATIONAL; _tcsncpy(smsaSource.ptsAddress, lpszSMSC, SMS_MAX_ADDRESS_LENGTH); } // 创建目标地址(号码) memset (&smsaDestination, 0, sizeof (smsaDestination)); smsaDestination.smsatAddressType = SMSAT_INTERNATIONAL; _tcsncpy(smsaDestination.ptsAddress, TEXT("+8613611995238"), SMS_MAX_ADDRESS_LENGTH); // 设置提供者服务 memset (&tpsd, 0, sizeof (tpsd)); tpsd.dwMessageOptions = bSendConfirmation ? PS_MESSAGE_OPTION_STATUSREPORT : PS_MESSAGE_OPTION_NONE; tpsd.psMessageClass = PS_MESSAGE_CLASS1; tpsd.psReplaceOption = PSRO_NONE; // 发送 if(SUCCEEDED(hr=SmsSendMessage(smshHandle, ((bUseDefaultSMSC) ? NULL : &smsaSource), &smsaDestination, NULL, (PBYTE) lpszMessage, _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); } //关闭 VERIFY(SUCCEEDED(SmsClose(smshHandle))); }
相关文章推荐
- Windows mobile SMS发送操作代码(转)
- java 发送邮件 email相关操作代码测试,生成复杂格式邮件,发送邮件相关操作(键人岐)
- java 发送邮件 email相关操作代码测试,生成复杂格式邮件,发送邮件相关操作
- 【代码】Android: SMS TEL MAIL 发送短信、打电话、发送邮件使用集合
- java 发送邮件 email相关操作代码测试,生成复杂格式邮件,发送邮件相关操作
- Java代码实现SMS短信发送功能
- [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作
- 多线程发送操作之一:运行一个线程的格式化代码(Specifying the Code to Run on a Thread)
- SMS 短信发送代码
- php 发送sms实例代码
- 操作Modem口,达到发送sms的目的,Linux脚本+号码+内容
- Windows mobile下使用SMS(短消息)功能的C#代码
- 使用支持Pop3的邮箱给好友群发邮件. C# .Net 2.0 邮件发送 + XML 读取操作代码.
- 报表控件操作的一些代码(以备忘记)
- Android 操作excel功能实例代码
- sql 常用操作脚本代码
- git操作 & 上传本地代码到github步骤
- 用两个栈实现队列的操作代码
- 关于List Control控件实现翻页操作的基本代码
- C# WORD操作实现代码