Save method

Instructs the object to save its persistent data to memory.


HRESULT retVal = object.Save(pvMem, fClearDirty, cbSize);


  • pvMem [in]
    Type: void

    The address of the memory in which the object should save up to cbSize bytes of its data. The object must not write past the address (BYTE*)((BYTE *)pvMem+cbSize).

  • fClearDirty [in]
    Type: BOOL

    A flag indicating whether the object should clear its dirty state on return from IPersistMemory::Save, or leave that state as is.

  • cbSize [in]
    Type: unsigned long

    The amount of memory available at pvMem to which the object can write its data.


Any object that implements IPersistMemory has some information to save persistently; therefore, E_NOTIMPL is not a valid return code.

The caller should allocate as many bytes as the object returns from IPersistMemory::GetSizeMax.