Applies to: Outlook 2013 | Outlook 2016

Returns a MAPIERROR structure containing information about the previous error on the table.

HRESULT GetLastError(
HRESULT hResult,
ULONG ulFlags,



[in] HRESULT containing the error generated in the previous method call.


[in] Bitmask of flags that controls the type of the returned strings. The following flag can be set:


The strings in the MAPIERROR structure returned in the lppMAPIError parameter are in Unicode format. If the MAPI_UNICODE flag is not set, the strings are in ANSI format.


[out] Pointer to a pointer to the returned MAPIERROR structure containing version, component, and context information for the error. The lppMAPIError parameter can be set to NULL if a MAPIERROR structure with appropriate information cannot be provided.

Return value


The call succeeded and has returned the expected value or values.


Either the MAPI_UNICODE flag was set and the implementation does not support Unicode, or MAPI_UNICODE was not set and the implementation only supports Unicode.


The IMAPITable::GetLastError method returns detailed information, if available, about a prior method call that failed. This information can be displayed in a message or a dialog box.

Notes to callers

Call GetLastError whenever you need to display information about an error to the user.

You can make use of the MAPIERROR structure pointed to by the lppMAPIError parameter if the table object supplies one only if GetLastError returns S_OK. Sometimes the table implementation cannot determine what the last error was or has nothing more to report about the error. In this situation, the pointer at lppMAPIError is set to NULL.

To release all the memory allocated for the MAPIERROR structure, call the MAPIFreeBuffer function.

For more information about the GetLastError method, see MAPI Extended Errors.

See also



IMAPITable : IUnknown