Compartir a través de


Control de errores en MAPI

Hace referencia a: Outlook 2013 | Outlook 2016

Los valores correctos, de advertencia y de error se devuelven mediante un número de 32 bits conocido como identificador de resultados o HRESULT. Un HRESULT no es realmente un identificador para nada; es simplemente un valor de 32 bits con varios campos codificados en el valor. Un resultado cero indica que se ha realizado correctamente y un resultado distinto de cero indica un error.

MAPI en plataformas de 32 bits funciona únicamente con valores HRESULT.

En la ilustración siguiente se muestra el formato HRESULT para plataformas de 32 bits.

Formato de HRESULT

Formato HRESULT formato

El bit de orden alto en HRESULT indica si el valor devuelto representa un error o un éxito. Si se establece en cero, el valor indica que se ha realizado correctamente. Si se establece en 1, indica un error.

Los bits R, C, N y r se reservan en HRESULT.

El campo de instalación de ambas versiones indica el área de responsabilidad del error. Hay varias instalaciones, pero la gran mayoría de los errores MAPI usan FACILITY_ITF para representar errores de interfaz. Las instalaciones más comunes que se usan actualmente son: FACILITY_NULL, FACILITY_ITF, FACILITY_DISPATCH, FACILITY_RPC y FACILITY_STORAGE. Si son necesarias nuevas instalaciones, Microsoft las asigna porque deben ser únicas. En la tabla siguiente se describen los distintos campos de la instalación.

Facility Descripción
FACILITY_NULL
Para códigos de estado comunes ampliamente aplicables, como S_OK o E_OUTOF_MEMORY; el valor es cero.
FACILITY_ITF
Para la mayoría de los códigos de estado devueltos por los métodos de interfaz; la interfaz define el valor. Es decir, dos valores HRESULT con exactamente el mismo valor de 32 bits devuelto desde dos interfaces diferentes podrían tener significados diferentes.
FACILITY_DISPATCH
Para errores de interfaz IDispatch de enlace en tiempo de ejecución.
FACILITY_RPC
Para los códigos de estado devueltos por las llamadas a procedimientos remotos.
FACILITY_STORAGE
Para los códigos de estado devueltos por las llamadas al método IStorage o IStream relacionadas con el almacenamiento estructurado. Los códigos de estado con valores de código (16 bits inferiores) en el intervalo de códigos de error de Windows (es decir, menos de 256) tienen el mismo significado que los errores de Windows correspondientes.

El campo de código es un número único que se asigna para representar el error o la advertencia.