Envoi sms c++

Résolu
helve Messages postés 2 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 27 mars 2009 - 26 mars 2009 à 14:50
helve Messages postés 2 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 27 mars 2009 - 27 mars 2009 à 16:32
Bonjour,

je travail avec windows mobile 6 standard en c++ et j'aimerais envoyer un sms.
J'ai trouvé la méthode smssendmessage, mais j'ai quelques soucis avec les paramètres.

voici mon code qui devrais s'occuper de l'envoi :

    SMS_HANDLE smsHandle;
    // try to open an SMS Handle
    if(FAILED(SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, &smsHandle, NULL)))
    {
        AfxMessageBox(_T("error : SmsOpen"));
        return;
    }
    // numero de destination
    SMS_ADDRESS addDst;
    addDst.smsatAddressType = SMSAT_INTERNATIONAL;
    TCHAR TelChar = TCHAR("+41795483256");
    addDst.ptsAddress[sizeof(TelChar)] = TelChar;
    // message a envoyer
    CString messString(_T("Le client : ") + Nom + _T(" avec le password : ") + Passe + _T(" veut le film : ") + Code); // avec Nom, Passe et Code qui sont des CString
    BYTE *messByte = (PBYTE)(LPCTSTR)messString;
    if (SUCCEEDED(SmsSendMessage(smsHandle,NULL,&addDst,NULL,messByte,sizeof(messByte),
                                 NULL,NULL,SMSDE_OPTIMAL,SMS_OPTION_DELIVERY_NONE,NULL)))
    {
        AfxMessageBox(_T("message envoyé"));
        OnOK();
    } else {
        AfxMessageBox(_T("message pas envoyé"));
        OnOK();
    }

j'arrive a générer la solution, mais lors de l'exécution j'ai toujours "message pas envoyé"

merci de votre aide, à+

1 réponse

helve Messages postés 2 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 27 mars 2009
27 mars 2009 à 16:32
j'ai trouvé la solution a mon problème

voici le code correct :

    SMS_HANDLE smsHandle;
    SMS_ADDRESS addDst;
    LPTSTR Message;
    TEXT_PROVIDER_SPECIFIC_DATA tpsd;
    SMS_MESSAGE_ID smsmidMessageID = 0;
    // try to open an SMS Handle for Send
    if(FAILED(SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, &smsHandle, NULL)))
    {
        AfxMessageBox(_T("error : SmsOpen"));
        return;
    }
    // Creation de l'adresse de destination
    memset(&addDst,0,sizeof(addDst));
    addDst.smsatAddressType = SMSAT_INTERNATIONAL;
    lstrcpy(addDst.ptsAddress, TEXT("+43126254123"));
    // Creation du message a envoyer
    Message = (LPTSTR)(LPCTSTR)(_T("Le client : ") + Nom + _T(" avec le password : ") + Passe + _T(" veut le film : ") + Code);
    // Set up provider specific data
    tpsd.dwMessageOptions = PS_MESSAGE_OPTION_NONE;
    tpsd.psMessageClass = PS_MESSAGE_CLASS1;
    tpsd.psReplaceOption = PSRO_NONE;
    // Send the SMS message, indicating success or failure
    if (SUCCEEDED(SmsSendMessage(smsHandle,NULL,&addDst,NULL,(PBYTE)Message,_tcslen(Message) * sizeof(TCHAR),
                                 (PBYTE)&tpsd, sizeof(TEXT_PROVIDER_SPECIFIC_DATA),SMSDE_OPTIMAL,SMS_OPTION_DELIVERY_NONE,&smsmidMessageID)))
    {
        AfxMessageBox(_T("message envoyé"));
        VERIFY(SUCCEEDED(SmsClose(smsHandle)));
        OnOK();
    } else {
        AfxMessageBox(_T("message pas envoyé"));
        VERIFY(SUCCEEDED(SmsClose(smsHandle)));
        OnOK();
    }
3
Rejoignez-nous