IKnowledgeSyncProvider::GetFullEnumerationChangeBatch

ID が指定された最小値を上回る項目の項目メタデータが含まれた変更バッチを、完全な列挙の一部として取得します。

構文

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

パラメーター

  • dwBatchSize
    [in] 変更バッチに含める変更の数です。

  • pbLowerEnumerationBound
    [in] 項目 ID の下限です。このメソッドでは、ID がこの値以上の変更が返されます。

  • pSyncKnowledge
    [in] 項目変更がこのナレッジ オブジェクトに含まれている場合、その項目のデータは既に同期先レプリカに存在します。

  • ppSyncChangeBatch
    [out] ID が指定された下限を上回る項目の項目メタデータが含まれた変更バッチを返します。

  • ppUnkDataRetriever
    [out] 変更データを取得するために使用できるオブジェクトを返します。これには、ISynchronousDataRetriever オブジェクトまたはプロバイダー固有のオブジェクトを指定できます。

戻り値

  • S_OK

  • プロバイダーが決定したエラー コード

説明

このメソッドは、忘れられたナレッジの復旧時に Sync Framework によって呼び出されます。

このメソッドは、項目 ID が pbLowerEnumerationBound 以上の変更を項目 ID の順で列挙します。これにより、Sync Framework は、同期先プロバイダーのどの項目が同期元プロバイダーによって削除され、忘れられているかを特定できるようになります。 このメソッドでは、オプションで、同期先ナレッジに含まれていない、項目 ID が pbLowerEnumerationBound より小さい変更を、項目 ID の順にバッチに追加することもできます。

実装に関するメモ

このバッチの後で送信する変更がもうない場合は、返された変更バッチで ISyncChangeBatchBase::SetLastBatch を呼び出す必要があります。そうしないと、次の変更バッチを取得するために、Sync Framework によって GetFullEnumerationChangeBatch が再度呼び出されます。

項目変更に関するメタデータと共に項目データを送信するプロバイダーでは、pSyncKnowledge を使用して、項目データの送信が必要かどうかを判断できます。項目変更が pSyncKnowledge に含まれている場合、項目データを送信する必要はありません。このメソッドを使用して項目の包含を確認する前に、現在のプロバイダーに含まれているナレッジ オブジェクトで ISyncKnowledge::MapRemoteToLocal メソッドを使用して、pSyncKnowledge をマップしておく必要があります。

関連項目

その他の技術情報

IKnowledgeSyncProvider インターフェイス

古くなったレプリカの復旧