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 をマップしておく必要があります。