ISaveChangeContext2::SetConstraintConflictOnChange

同期先プロバイダーが同期先レプリカに変更の適用を試みたときに制約の競合が発生したことを報告します。

HRESULT SetConstraintConflictOnChange(
  const BYTE * pbConflictingItemId,
  CONSTRAINT_CONFLICT_REASON constraintConflictReason);

パラメーター

  • pbConflictingItemId
    [in, unique] 適用する変更と競合する同期先項目の項目 ID です。
  • constraintConflictReason
    [in] 競合が発生した理由です。

戻り値

  • S_OK

  • E_INVALIDARG: constraintConflictReason が有効な値でない場合、または constraintConflictReason が CCR_COLLISION で、かつ pbConflictingItemId が NULL の場合

  • SYNC_E_INVALID_OPERATION: 制約の競合または復旧可能なエラーが既にこのオブジェクトに設定されている場合

解説

制約の競合は、同期先プロバイダーが同期先レプリカに対して変更の適用を試みたときに、その変更が同期先レプリカの制約 (フォルダーの関係や、ファイル システムにおいて、まったく同じ名前が付けられたデータの場所など) に違反している場合に発生します。

同期先プロバイダーがこのメソッドを使用して、制約の競合を報告すると、セッションに対して設定されている競合の解決方法か、指定された競合に対してアプリケーションが設定した競合解決アクションに従って、変更適用元が競合を解決します。その後、変更適用元は、同期先プロバイダーが解決された競合を同期先レプリカに適用できるように、必要な同期先プロバイダーの呼び出しをディスパッチします。詳細については、「制約の競合の検出および解決」を参照してください。

参照

リファレンス

ISaveChangeContext2 インターフェイス