Last modified: July 23, 2011

Applies to: Outlook

Returns a MAPIERROR structure that contains information about the previous error that occurred to the provider administration object.

HRESULT GetLastError(
  HRESULT hResult,
  ULONG ulFlags,


[in] An HRESULT data type that contains the error value generated in the previous method call.


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


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


[out] A pointer to a pointer to the returned MAPIERROR structure that contains version, component, and context information for the error. The lppMAPIError parameter can be set to NULL if there is no MAPIERROR to return.


The call succeeded and returned the expected value or values.


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

The IProviderAdmin::GetLastError method supplies information about a prior method call that failed. Callers can provide their users with detailed information about the error by including the data from the MAPIERROR structure in a dialog box.

You can use the MAPIERROR structure, if MAPI supplies one, that the lppMAPIError parameter points to only if GetLastError returns S_OK. Sometimes MAPI cannot determine what the last error was or has nothing more to report about the error. In this situation, a pointer to NULL is returned in lppMAPIError instead.

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