The No Scribble state indicates that changes to a message are being saved. The actual saving of values stored in the form object's user interface occurs when the form object's IPersistMessage::Save method is called by the client application. Legal transitions from the No Scribble state are described in the following table.
IPersistMessage method |
Action |
New state |
SaveCompleted( pMessage == NULL) |
If fSameAsLoad flag was TRUE on the Save call that caused the form to enter the No Scribble State and the message has been modified, then internally mark the changes as saved and call IMAPIViewAdviseSink::OnSaved. |
Normal |
SaveCompleted( pMessage != NULL) |
Call the IPersistMessage::HandsOffMessage method (similar to the OLE IPersistStorage::HandsOffStorage method) followed by the normal SaveCompleted actions. If SaveCompleted was successful, enter the Normal state. Otherwise, enter the Hands Off After Save state. |
Normal or Hands Off After Save |
HandsOffMessage |
Recursively invoke the HandsOffMessage method on embedded messages or the OLE IPersistStorage::HandsOffStorage method on embedded OLE objects. Release the message object and any embedded messages or objects. |
Hands Off After Save |
Save, InitNew or Load |
Set the last error to and return E_UNEXPECTED. |
No Scribble |
GetLastError |
Return the last error. |
No Scribble |
Other IPersistMessage methods or methods from other interfaces |
Set the last error to and return E_UNEXPECTED. |
No Scribble |