Freigeben über


Fehler Extended MAPI

Gilt für: Outlook 2013 | Outlook 2016

Implementierer von Schnittstellenmethoden können einfach Erfolg (S_OK) und Fehler (MAPI_E_CALL_FAILED) zurückgeben oder zwischen Fehlerbedingungen unterscheiden und so viele Fehlerwerte zurückgeben, wie für die Situation sinnvoll sind. In den meisten Situationen kann einer der fehlerwerte verwendet werden, die von MAPI in MAPICODE definiert sind. H-Headerdatei. In Situationen, die nicht durch einen vordefinierten Wert abgedeckt werden, kann jedoch der Wert MAPI_E_EXTENDED_ERROR verwendet werden. MAPI_E_EXTENDED_ERROR gibt dem Aufrufer an, dass weitere Informationen zum Fehler verfügbar sind. Der Aufrufer ruft die zusätzlichen Informationen ab, indem die GetLastError-Methode für dasselbe Objekt aufgerufen wird, das MAPI_E_EXTENDED_ERROR zurückgegeben hat.

GetLastError can be called to retrieve information about any error code, not only MAPI_E_EXTENDED_ERROR. Many MAPI objects implement interfaces that include the GetLastError method. GetLastError returns a single MAPIERROR structure that, in theory, includes a concatenation of all the errors generated by the previous method call. For more information, see MAPIERROR. As a caller, it is wise not to depend on having this extra error information available because object implementers are not required to provide it. However, it is strongly recommended that whenever implementers return MAPI_E_EXTENDED_ERROR, they make it possible for callers to retrieve a MAPIERROR structure with useful information about the error.

Because GetLastError is also an API function that is part of the Windows SDK, it can be easy to forget that in MAPI, GetLastError is an interface method and can only be called on MAPI objects. Another easy mistake to make is calling GetLastError on the wrong object. GetLastError must be called on the object that generated the error. For example, if your client makes a session call, and MAPI forwards the call to a service provider to do the work, your client should not call GetLastError on the service provider object. IMAPISession::GetLastError is the correct call; GetLastError should be invoked on the session object. For more information, see IMAPISession::GetLastError.