Last modified: July 23, 2011

Applies to: Outlook

Returns a MAPIERROR structure that contains information about the previous error in the form 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 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] A pointer to a pointer to a MAPIERROR structure that contains version, component, and context information for the error. The lppMAPIError parameter can be set to NULL if the form cannot supply appropriate information for a MAPIERROR structure.


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


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

Form objects implement the IPersistMessage::GetLastError method to supply information about a prior method call that failed. Form viewers can provide their users with detailed information about the error by including the data from the MAPIERROR structure in a dialog box.

A call to GetLastError does not affect the state of the form. When GetLastError returns, the form remains in the state that it was in before the call was made.

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

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

© 2016 Microsoft