Share via


IReplicaMetadata2::GetFilteredFullEnumerationItemBatchVersions

Gets a filtered change batch that contains the versions of items and change units that are stored in this replica, and that correspond to the items and change units that are referred to in a batch of changes that are sent from another provider, as part of a full enumeration.

HRESULT GetFilteredFullEnumerationItemBatchVersions(
  ISyncFullEnumerationChangeBatch * pRemoteSyncChangeBatch,
  IChangeBatchCallback * pCallback,
  IEnumSyncChanges ** ppLocalVersionsEnum);

Parameters

Term

Definition

pRemoteSyncChangeBatch

[in] The batch of changes sent from another provider that is about to be applied to the item store that is associated with this replica.

pCallback

[in, unique] A callback interface that is called to determine whether an item should be added to the batch.

ppLocalVersionsEnum

[out] Returns a filtered batch of changes that contains the versions of items and change units that are stored in this replica.

Return Value

  • S_OK

  • E_POINTER

Remarks

This method helps a synchronization provider implement its IKnowledgeSyncProvider::ProcessFullEnumerationChangeBatch method when the destination provider filters changes.

Change appliers use the versions in the batch of changes that are returned from this method for conflict detection.

Notes for Implementers

The change batch that is returned from this method must contain one entry for every item that has an item ID between the lower and upper bounds specified in pRemoteSyncChangeBatch, including change unit entries, except when pCallback indicates that the entry should not be included. If an item exists in the item store and is included by the filter, its entry must contain its version information for this replica. If an item that is included by the filter does not exist, its entry must contain 0 for its version and its SYNC_CHANGE_FLAG_DOES_NOT_EXIST flag must be set.

See Also

Reference

IReplicaMetadata2 Interface