Instructs the object to save its properties to the given property bag, optionally clearing the objectÆs dirty flag. The caller can request that the object save all properties or that the object save only those that are known to have changed.
HRESULT Save(
IPropertyBag *
pPropBag, // Points to the callerÆs property bag
BOOL fClearDirty, // Specifies whether to clear the dirty flag
BOOL fSaveAllProperties // Specifies whether to save all properties or just those that have changed
);
Parameters
pPropBag
[in] A pointer to the callerÆs property bag through which the object can write properties. Cannot be NULL.
fClearDirty
[in] A flag indicating whether the object should clear its dirty flag when saving is complete. TRUE means clear the flag, FALSE means leave the flag unaffected. FALSE is used when the caller wishes to do a Save Copy As type of operation.
fSaveAllProperties
[in] A flag indicating whether the object should save all its properties (TRUE) or only those that have changed since the last save or initialization (FALSE).
Return Values
S_OK
The object successfully saved the requested properties itself.
E_FAIL
There was a problem saving one of the properties. The object can choose to fail only if a necessary property could not be saved, meaning that the object can assume default property values if a given property is not seen through IPersistPropertyBag::Load at some later time.
E_POINTER
The address in pPropBag is not valid (such as NULL) and therefore the object cannot initialize itself.
Remarks
E_NOTIMPL is not a valid return code as any object implementing this interface must support the entire functionality of the interface.
See Also
IPersistPropertyBag::InitNew, IPersistPropertyBag::Load