Freigeben über


Fehlerbehandlung in MAPI

Gilt für: Outlook 2013 | Outlook 2016

Erfolgs-, Warnungs- und Fehlerwerte werden mithilfe einer 32-Bit-Zahl zurückgegeben, die als Ergebnishandle oder HRESULT bezeichnet wird. Ein HRESULT ist wirklich kein Griff zu nichts; Es handelt sich lediglich um einen 32-Bit-Wert mit mehreren Feldern, die im Wert codiert sind. Ein Ergebnis von 0 (null) gibt einen Erfolg an, und ein Ergebnis ungleich 0 (null) gibt einen Fehler an.

MAPI auf 32-Bit-Plattformen funktioniert ausschließlich mit HRESULT-Werten.

Die folgende Abbildung zeigt das HRESULT-Format für 32-Bit-Plattformen.

HRESULT-Format

HRESULT-Format

Das Bit in hoher Reihenfolge im HRESULT gibt an, ob der Rückgabewert Erfolg oder Fehler darstellt. Bei Festlegung auf 0 (null) gibt der Wert den Erfolg an. Wenn dieser Wert auf 1 festgelegt ist, weist dies auf einen Fehler hin.

Die R-, C-, N- und r-Bits sind im HRESULT reserviert.

Das Feld "Facility" in beiden Versionen gibt den Zuständigkeitsbereich für den Fehler an. Es gibt mehrere Möglichkeiten, aber die überwiegende Mehrheit der MAPI-Fehler verwendet FACILITY_ITF, um Schnittstellenfehler darzustellen. Die am häufigsten verwendeten Einrichtungen sind: FACILITY_NULL, FACILITY_ITF, FACILITY_DISPATCH, FACILITY_RPC und FACILITY_STORAGE. Wenn neue Einrichtungen erforderlich sind, ordnet Microsoft sie zu, da sie eindeutig sein müssen. In der folgenden Tabelle werden die verschiedenen Facility-Felder beschrieben.

Facility Beschreibung
FACILITY_NULL
Für allgemein anwendbare allgemeine status Codes wie S_OK oder E_OUTOF_MEMORY; der Wert ist 0 (null).
FACILITY_ITF
Für die meisten status Codes, die von Schnittstellenmethoden zurückgegeben werden; der Wert wird von der -Schnittstelle definiert. Das heißt, zwei HRESULT-Werte mit genau demselben 32-Bit-Wert, der von zwei verschiedenen Schnittstellen zurückgegeben wird, können unterschiedliche Bedeutungen haben.
FACILITY_DISPATCH
Bei Fehlern der IDispatch-Schnittstelle bei später Bindung.
FACILITY_RPC
Für status Codes, die von Remoteprozeduraufrufen zurückgegeben werden.
FACILITY_STORAGE
Für status Codes, die von IStorage- oder IStream-Methodenaufrufen zurückgegeben werden, die sich auf strukturierten Speicher beziehen. Statuscodes mit Codewerten (niedrigere 16 Bits) im Bereich von Windows-Fehlercodes (d. h. kleiner als 256) haben die gleiche Bedeutung wie die entsprechenden Windows-Fehler.

Das Codefeld ist eine eindeutige Zahl, die zugewiesen ist, um den Fehler oder die Warnung darzustellen.