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
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.