Gestion des erreurs dans MAPI
S’applique à : Outlook 2013 | Outlook 2016
Les valeurs de réussite, d’avertissement et d’erreur sont retournées à l’aide d’un nombre 32 bits appelé handle de résultat ou HRESULT. Un HRESULT n’est vraiment pas un handle à quoi que ce soit ; il s’agit simplement d’une valeur 32 bits avec plusieurs champs encodés dans la valeur. Un résultat zéro indique la réussite et un résultat différent de zéro indique l’échec.
MAPI sur les plateformes 32 bits fonctionne uniquement avec les valeurs HRESULT.
L’illustration suivante montre le format HRESULT pour les plateformes 32 bits.
Format HRESULT
Le bit d’ordre élevé dans HRESULT indique si la valeur de retour représente la réussite ou l’échec. Si elle est définie sur zéro, la valeur indique la réussite. Si la valeur est 1, cela indique un échec.
Les bits R, C, N et r sont réservés dans le HRESULT.
Le champ d’installation dans les deux versions indique la zone de responsabilité de l’erreur. Il existe plusieurs fonctionnalités, mais la grande majorité des erreurs MAPI utilisent FACILITY_ITF pour représenter les erreurs d’interface. Les fonctionnalités les plus courantes actuellement utilisées sont les suivantes : FACILITY_NULL, FACILITY_ITF, FACILITY_DISPATCH, FACILITY_RPC et FACILITY_STORAGE. Si de nouvelles installations sont nécessaires, Microsoft les alloue, car elles doivent être uniques. Le tableau suivant décrit les différents champs d’installation.
Facility | Description |
---|---|
FACILITY_NULL |
Pour les codes de status courants largement applicables, tels que S_OK ou E_OUTOF_MEMORY, la valeur est égale à zéro. |
FACILITY_ITF |
Pour la plupart des codes status retournés par les méthodes d’interface , la valeur est définie par l’interface. Autrement dit, deux valeurs HRESULT avec exactement la même valeur 32 bits retournée par deux interfaces différentes peuvent avoir des significations différentes. |
FACILITY_DISPATCH |
Pour les erreurs d’interface IDispatch de liaison tardive. |
FACILITY_RPC |
Par status codes retournés à partir d’appels de procédure distante. |
FACILITY_STORAGE |
Par status codes retournés par les appels de méthode IStorage ou IStream relatifs au stockage structuré. Les codes d’état avec des valeurs de code (16 bits inférieurs) dans la plage des codes d’erreur Windows (autrement dit, moins de 256) ont la même signification que les erreurs Windows correspondantes. |
Le champ de code est un numéro unique qui est affecté pour représenter l’erreur ou l’avertissement.