The IPersistMessage::GetLastError method returns a MAPIERROR structure containing information about the previous error in the form object.
See IPersistMessage : IUnknown.
HRESULT GetLastError(
HRESULT hResult,
ULONG ulFlags,
LPMAPIERROR FAR * lppMAPIError
);
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 make use of the MAPIERROR structure pointed to by the lppMAPIError parameter — if the form supplies one — 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 Using Extended Errors.