The Normal state is where the form object spends most of its time, waiting for client applications to initiate an action such as saving changes or closing the form. Legal transitions from the Normal state are described in the following table.
IPersistMessage method |
Action |
New state |
Save( pMessage == NULL, fSameAsLoad == TRUE) or Save( pMessage != NULL, fSameAsLoad == FALSE) |
Recursively save any embedded OLE objects that are dirty. Save message data back to the message object. Store the fSameAsLoad flag for later use in the No Scribble state. |
No Scribble |
Save( pMessage != NULL, fSameAsLoad == TRUE) |
This is the same as the previous case, except that this Save call is used in low memory situations and must not fail for lack of memory. |
No Scribble |
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 From Normal |
SaveCompleted, InitNew or Load |
Set last error to and return E_UNEXPECTED |
Normal |
GetLastError |
Return the last error.
|
Normal |
Other IPersistMessage methods or methods from other interfaces |
Implement as described in the documentation for the IPersistMessage interface. |
Normal |