Partager via


Utiliser l’API de récupération sur incident MAPI

S’applique à : Outlook 2013 | Outlook 2016

Cette rubrique contient un exemple de code en C++ qui montre comment appeler la fonction MAPICrashRecovery à partir de la fonction UnhandledExceptionFilter . La fonction MAPICrashRecovery vérifie l’état de la mémoire partagée du fichier de dossiers personnels (PST) ou du fichier de dossiers hors connexion (OST).

Si la mémoire est dans un état cohérent, la fonction MAPICrashRecovery déplace les données sur le disque et empêche tout autre accès en lecture ou en écriture tant que le processus n’est pas terminé. En vous assurant que les fichiers PST ou OST sont dans un état cohérent avant la fin du processus, vous pouvez empêcher Microsoft Outlook 2010 ou Microsoft Outlook 2013 d’afficher le message d’erreur suivant et éviter les problèmes de performances :

Un fichier de données n’a pas été fermé correctement la dernière fois qu’il a été utilisé et est en cours de recherche de problèmes. Les performances peuvent être affectées pendant que le case activée est en cours.

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; 
}

Voir aussi