ISynchronousNotifyingChangeApplierTarget::SaveChangeWithChangeUnits

Saves an item change that contains change unit changes to the item store.

Syntax

HRESULT SaveChangeWithChangeUnits(
  ISyncChange * pChange,
  ISaveChangeWithChangeUnitsContext * pSaveContext);

Parameters

  • pChange
    [in] The item change to apply.

  • pSaveContext
    [in] Information about the change to be applied.

Return Value

  • S_OK

  • Provider-determined error codes

Notes for Implementers

When the action that is contained in pSaveContext is SSA_CREATE, either all of the change units must be saved successfully or the entire item change must be discarded. Saving some of the change units and failing to save others can result in data corruption.

When ISaveChangeWithChangeUnitsContext::SetRecoverableErrorOnChangeUnit is called and pSaveContext is SSA_CREATE, SetRecoverableErrorOnChangeUnit returns SYNC_E_ON_CREATE_MUST_FAIL_ENTIRE_ITEM.

If synchronization is canceled during this method, and the provider has applied some of the change units, the provider must call ISaveChangeWithChangeUnitsContext::SetRecoverableErrorOnChangeUnit on all change units that are not applied.

See Also

Reference

ISynchronousNotifyingChangeApplierTarget Interface