Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: Return value of Function 'SendEmail' might be undefined

  Alt 9. Dez 2013, 23:57
Ich habe es auch damit schon versucht aber am ende der function.
Das sollte auch gehn und die Meldung weg sein.

Nur daß dann der Compiler sagen sollte, daß der Rückgabewert von MapiSendMail umsonst an Result zugewiesen wird.

Delphi-Quellcode:
if (dwRet <> SUCCESS_SUCCESS) then
  begin
    MessageBox(Handle,
      PChar('Error while trying to send email'),
      PChar('Error'),
      MB_ICONERROR or MB_OK);
  end
Eigentlich ghört das fehlende Result := ...; dort rein, denn hier fehlt die Zuweisung an Result, wärend es im Else-Zweig via MapiSendMail gesetzt wird.

Und nein, 0 ist hier ein total falsches Ergebnis, denn MapiSendMail (wie man im MSDN nachlesen kann) liefert im Erfolgsfall auch eine 0. Genauer SUCCESS_SUCCESS, welche wie S_OK und NOERROR = 0 ist.

Also wenn, dann sollte man Result dort auf MAPI_E_FAILURE oder besser noch MAPI_E_LOGIN_FAILURE setzen, da es ja einen Fehler bei MapiLogon angibt.
Aber ich würde Result da auf dwRet setzen, also den "korrekten" Fehlercode. Oder dwRet gleich weglassen und direkt Result verwenden.


Und die vielen StrDispose gehören wohl eher in ein Try-Finally, also ins Finally und das Try nach dem zweiten FillChar.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 9. Dez 2013 um 23:59 Uhr)
  Mit Zitat antworten Zitat