IReplicaMetadata2::GetFilteredFullEnumerationItemBatchVersions
このレプリカに保存されている項目と変更単位の各バージョンが格納されているフィルター選択された変更バッチ、および別のプロバイダーから完全な列挙の一部として送信された変更バッチで参照されている項目および変更単位に対応するフィルター選択された変更バッチを取得します。
HRESULT GetFilteredFullEnumerationItemBatchVersions(
ISyncFullEnumerationChangeBatch * pRemoteSyncChangeBatch,
IChangeBatchCallback * pCallback,
IEnumSyncChanges ** ppLocalVersionsEnum);
パラメーター
項目 |
定義 |
pRemoteSyncChangeBatch |
[in] 別のプロバイダーからの変更バッチのうち、このレプリカに関連付けられている項目ストアに適用される変更バッチです。 |
pCallback |
[in, unique] 項目をバッチに追加する必要があるかどうかを判断するために呼び出されるコールバック インターフェイスです。 |
ppLocalVersionsEnum |
[out] このレプリカに保存されている項目と変更単位の各バージョンが格納されているフィルター選択された変更バッチを返します。 |
戻り値
S_OK
E_POINTER
解説
同期先プロバイダー フィルターが変更された場合、このメソッドを使用すると、同期プロバイダーは IKnowledgeSyncProvider::ProcessFullEnumerationChangeBatch メソッドを実装できるようになります。
変更適用元は、このメソッドから返される変更バッチのバージョンを使用して競合を検出します。
実装に関するメモ
このメソッドから返される変更バッチには、pCallback でエントリを含めないことが示されている場合を除き、変更単位のエントリも含め、pRemoteSyncChangeBatch で指定した上限と下限の範囲内の項目 ID を持つ項目ごとに 1 つのエントリが含まれている必要があります。項目が項目ストアに存在し、フィルターによって含められる場合、その項目エントリには、このレプリカのバージョン情報が含まれている必要があります。フィルターによって含められる項目が存在しない場合は、そのエントリにバージョンとして 0 が格納され、SYNC_CHANGE_FLAG_DOES_NOT_EXIST フラグが設定される必要があります。