The Hands Off From Normal state is very similar to the Hands Off After Save state. It is part of the process of saving the contents of a form to permanent storage. When in this state, the form object should refrain from making changes to the in-memory copies of values of the message's properties, since there may not be another opportunity to save those changes. Legal transitions from the Hands Off From Normal state are described in the following table.
IPersistMessage method |
Action |
New state |
SaveCompleted( pMessage != NULL) |
Replace the message object's message with pMessage, which is the replacement for the message revoked by the previous call to HandsOffMessage. The data in the new message is guaranteed to be the same as in the revoked message. The message should not be marked as clean, nor should IMAPIViewAdviseSink::OnSaved be called after this call. If the SaveCompleted call succeeds, enter the Normal state. Otherwise, stay in the Hands Off From Normal state. |
Normal or Hands Off From Normal |
SaveCompleted( pMessage == NULL) |
Set the last error to E_UNEXPECTED. |
Hands Off From Normal |
HandsOffMessage, Save, InitNew, or Load |
Set the last error to E_UNEXPECTED |
Hands Off From Normal |
GetLastError |
Return the last error. |
Hands Off From Normal |
Other IPersistMessage methods or methods from other interfaces |
Set the last error to E_UNEXPECTED |
Hands Off From Normal |