IKnowledgeSyncProvider::GetFullEnumerationChangeBatch

作为完全枚举的一部分,获取一个变更批,该变更批包含 ID 大于指定下限的项的项元数据。

语法

HRESULT GetFullEnumerationChangeBatch(
DWORD dwBatchSize,
  const BYTE * pbLowerEnumerationBound,
  ISyncKnowledge * pSyncKnowledge,
  ISyncFullEnumerationChangeBatch ** ppSyncChangeBatch,
  IUnknown ** ppUnkDataRetriever);

参数

  • dwBatchSize
    [in] 要包含在变更批中的变更数。

  • pbLowerEnumerationBound
    [in] 项 ID 的下限。此方法返回 ID 大于或等于此 ID 值的变更。

  • pSyncKnowledge
    [in] 如果某个项变更包含在此知识对象中,则该项的数据已经存在于目标副本中。

  • ppSyncChangeBatch
    [out] 返回一个包含某些项的项元数据的变更批,这些项具有的 ID 大于指定的下限。

  • ppUnkDataRetriever
    [out] 返回一个可用于检索变更数据的对象。该对象可以是 ISynchronousDataRetriever 对象,也可以是提供程序特定的对象。

返回值

  • S_OK

  • 提供程序确定的错误代码

注释

此方法在遗忘知识恢复期间由 Sync Framework 调用。

此方法按照项 ID 的排序顺序枚举项 ID 等于或大于 pbLowerEnumerationBound 的变更。这使 Sync Framework 能够确定目标提供程序中的哪些项已被删除但又被源提供程序遗忘。 此外,此方法还可以向批中添加变更,这些变更按项 ID 排序、所具有的项 ID 小于 pbLowerEnumerationBound 且未包含在目标知识中。

实施者注意事项

如果在此批之后再无变更要发送,则必须在返回的变更批上调用 ISyncChangeBatchBase::SetLastBatch。否则,Sync Framework 将再次调用 GetFullEnumerationChangeBatch 以检索其他变更批。

对于将项数据与项变更元数据一起发送的提供程序,可以使用 pSyncKnowledge 来确定是否有必要发送项数据。当项变更包含在 pSyncKnowledge 中时,不必发送项数据。请注意,在可以用它检查容纳的项之前,必须对包含在当前提供程序中的知识对象使用 ISyncKnowledge::MapRemoteToLocal 方法来映射 pSyncKnowledge。

请参阅

其他资源

IKnowledgeSyncProvider 接口

恢复过期副本