Verwenden der API zur MAPI-Wiederherstellung nach einem Absturz
Gilt für: Outlook 2013 | Outlook 2016
Dieses Thema enthält ein Codebeispiel in C++, das zeigt, wie die MAPICrashRecovery-Funktion aus der UnhandledExceptionFilter-Funktion aufgerufen wird. Die MAPICrashRecovery-Funktion überprüft den Zustand des freigegebenen Arbeitsspeichers der Datei "Persönliche Ordner" (PST) oder der Offlineordnerdatei (OST).
Wenn sich der Arbeitsspeicher in einem konsistenten Zustand befindet, verschiebt die MAPICrashRecovery-Funktion die Daten auf den Datenträger und verhindert weiteren Lese- oder Schreibzugriff, bis der Prozess beendet wird. Indem Sie sicherstellen, dass sich die PSTs oder OSTs in einem konsistenten Zustand befinden, bevor der Prozess beendet wird, können Sie verhindern, dass Microsoft Outlook 2010 oder Microsoft Outlook 2013 die folgende Fehlermeldung anzeigt, und Leistungsprobleme vermeiden:
Eine Datendatei wurde bei der letzten Verwendung nicht ordnungsgemäß geschlossen und wird auf Probleme überprüft. Die Leistung kann beeinträchtigt werden, während die Überprüfung ausgeführt wird.
LONG WINAPI UnhandledExceptionFilter(__in EXCEPTION_POINTERS* pep)
{
// Let the OS terminate the process upon return.
LONG retval = EXCEPTION_EXECUTE_HANDLER;
switch (pep->ExceptionRecord->ExceptionCode)
{
case EXCEPTION_BREAKPOINT:
case EXCEPTION_SINGLE_STEP:
// Ignore debugging exceptions.
retval = EXCEPTION_CONTINUE_SEARCH;
break;
default:
// The process is going to be terminated, so disconnect the MAPI database.
MAPICrashRecovery(MAPICRASH_RECOVER);
// Optionally, you can display a crash reporting dialog box here.
// If the user chooses to debug,
// call MAPICrashRecovery(MAPICRASH_CONTINUE).
break;
}
return retval;
}