IReplicaMetadata::GetChangeBatch
获取一个包含某些项的项元数据的变更批,这些项未包含在来自目标提供程序的指定知识中。
HRESULT GetChangeBatch(
DWORD dwBatchSize,
ISyncKnowledge *pSyncKnowledge,
ISyncChangeBatch ** ppSyncChangeBatch);
参数
- dwBatchSize
[in] 要创建的批的大小。
- pSyncKnowledge
[in] 来自目标提供程序的知识。
- ppSyncChangeBatch
[out] 返回一个包含某些项的项元数据的变更批,这些项未包含在来自目标提供程序的指定知识中。
返回值
S_OK
E_POINTER
如果 dwBatchSize 为 0,则返回值为 E_INVALIDARG。
备注
此方法可帮助同步提供程序实现其 IKnowledgeSyncProvider::GetChangeBatch 方法。
在提供程序调用此方法之前,它们必须确保元数据存储区中的版本反映了包括删除在内的所有本地变更。其实现方法为通过显式元数据维护传递来枚举项并更新其元数据。
通过 ISqlSyncMetadataStore 获得的此类的实现按照全局 ID 顺序添加对变更批的变更。
通过 ISqlSyncMetadataStore 获得的此类的实现在没有更多要发送的变更时对返回的变更批调用 SetLastBatch。
实施者注意事项
若要帮助使用全局 ID 排序且能够使用范围的提供程序,则应枚举变更,并按照全局 ID 的顺序将变更添加到变更批中。返回的变更批中的第一个变更会开始一个新范围。
如果此批之后没有更多要发送的变更,则必须对返回的变更批调用 SetLastBatch;否则 Sync Framework 将再次调用 IKnowledgeSyncProvider::GetChangeBatch 以检索其他变更批。