天天看點

windows mobile上發送短信

 發短信的一段代碼,記錄一下,省的以後再找。

// 短信

#include "sms.h"

#pragma comment(lib, "sms.lib")

afx_msg void OnSendmsm()  // 發送位置短信

  {

   HRESULT    h;

   SMS_HANDLE   smsHandle   =   NULL;

   SMS_ADDRESS   smsaDestination;

   SMS_MESSAGE_ID  smsmidMessageID=0;

   TEXT_PROVIDER_SPECIFIC_DATA   tpsd;

   h   =   SmsOpen(   SMS_MSGTYPE_TEXT,   SMS_MODE_SEND,   &smsHandle,   NULL   );

   if   (FAILED(h))

   {

    MessageBox(   _T(   "不能發送短信,請确認插入sm卡或卡内有費"   ),   _T(   "error提示"   ),   MB_ICONINFORMATION   );

    return;

   }

   smsaDestination.smsatAddressType   =   SMSAT_INTERNATIONAL;

   _tcsncpy(   smsaDestination.ptsAddress,   _T(   "+861381046xxxx "   ),   SMS_MAX_ADDRESS_LENGTH   );

   tpsd.dwMessageOptions   =   PS_MESSAGE_OPTION_NONE;

   tpsd.psMessageClass  =   PS_MESSAGE_CLASS1;

   tpsd.psReplaceOption =   PSRO_NONE;

   LPCTSTR   lpszMessage   =   _T(   "測試/n看能換行否?"   );

   h=   SmsSendMessage(smsHandle,  

    NULL,  

    &smsaDestination,  

    NULL,

    (   PBYTE   )lpszMessage,  

    _tcslen(   lpszMessage   )   *   sizeof(   TCHAR   ),  

    (   PBYTE   )&tpsd,

    sizeof(   TEXT_PROVIDER_SPECIFIC_DATA   ),  

    SMSDE_OPTIMAL,  

    SMS_OPTION_DELIVERY_NONE,

    &smsmidMessageID   );

   if ( SUCCEEDED(h) )

    MessageBox(   _T( "發送成功 "   ),   _T(   "出錯提示: "   ),   MB_ICONINFORMATION   );

   else

    MessageBox(   _T(  "号碼是否有誤? " ),   _T(   "出錯提示: "   ),   MB_ICONINFORMATION   );

   SmsClose(   smsHandle   );     

  }