IReplicaMetadata::ReportLiveItemByIndexedFields

报告由索引字段值标识的项处于活动状态,不应将其视为已删除。

HRESULT ReportLiveItemByIndexedFields(
  LPCWSTR * ppcszCustomFieldNames,
  IFieldValue ** ppFieldValues,
  BYTE cCustomFields);

参数

  • ppcszCustomFieldNames
    [in, size_is(cCustomFields)] 一组用于定义要报告为活动的项的索引字段名称。
  • ppFieldValues
    [in, size_is(cCustomFields)] 一组用于定义要报告为活动的项的索引字段值。这些值的顺序必须与 ppcszCustomFieldNames 中的名称顺序相同。
  • cCustomFields
    [in] ppcszCustomFieldNames 和 ppFieldValues 中的条目数。

返回值

  • S_OK

  • E_POINTER

  • 如果在初始化元数据时未将 ppcszCustomFieldNames 中的某个字段指定为索引字段,则返回值为 SYNC_E_METADATA_QUERY_REQUIRES_INDEXED_FIELDS。

  • 如果 ppcszCustomFieldNames 中的某个字段名称不存在,则返回值为 SYNC_E_METADATA_FIELD_INVALID_NAME。

  • 如果 ppFieldValues 中的某个字段值与相应字段的类型不匹配,则返回值为 SYNC_E_METADATA_FIELD_INVALID_TYPE。

  • 如果在元数据存储区中找不到匹配项,则返回值为 SYNC_E_METADATA_ITEM_NOT_FOUND。

备注

此方法属于删除检测服务的一部分。当对变更项调用 IReplicaMetadata::SaveItemMetadata 后或者对未变更但仍处于活动状态的项调用 IReplicaMetadata::ReportLiveItemByIndexedFieldsIReplicaMetadata::ReportLiveItemByGlobalId 后,元数据存储区中的某个项会被标记为处于活动状态。提供程序可以调用 IReplicaMetadata::GetUnreportedItems IReplicaMetadata::GetUnreportedItemsByIndexedFields,来获取元数据存储区中的未报告为处于活动状态的项。然后,提供程序可以将这些项标记为在元数据存储区中已删除。

请参阅

参考

IReplicaMetadata 接口