Поделиться через


IReplicaMetadata::GetUnreportedItemsByIndexedFields

Возвращает список элементов, которые содержат указанный набор значений индексированных полей и не помечены в настоящий момент как активные в хранилище метаданных, а также еще не помечены как удаленные.

HRESULT GetUnreportedItemsByFieldValue (
  LPCWSTR * ppcszCustomFieldNames,
  IFieldValue ** ppFieldValues,
  BYTE cCustomFields,
  IItemMetadataEnumerator ** ppItemMetadataEnumerator);

Параметры

  • ppcszCustomFieldNames
    [in, size_is(cCustomFields)] Набор имен индексированных полей, определяющий элементы, по которым производится поиск.
  • ppFieldValues
    [in, size_is(cCustomFields)] Набор значений индексированных полей, который определяет элементы, по которым производится поиск. Эти значения должны быть перечислены в том же порядке, что и имена в ppcszCustomFieldNames.
  • cCustomFields
    [in] Число элементов в списках ppcszCustomFieldNames и ppFieldValues.
  • ppItemMetadataEnumerator
    [out] Возвращает список элементов, которые содержат указанный набор значений индексированных полей и не помечены в настоящий момент как активные в хранилище метаданных, а также еще не помечены как удаленные.

Возвращаемое значение

  • S_OK

  • E_POINTER

  • E_OUTOFMEMORY

  • SYNC_E_METADATA_QUERY_REQUIRES_INDEXED_FIELDS, если поле в списке ppcszCustomFieldNames не определено как поле индекса в момент инициализации метаданных.

  • SYNC_E_METADATA_FIELD_INVALID_NAME, если имя поля не существует в списке ppcszCustomFieldNames.

  • SYNC_E_METADATA_FIELD_INVALID_TYPE, если значение поля в списке ppFieldValues не согласуется с типом соответствующего поля.

Замечания

Если не существуют неактивные элементы с заданными значениями индексированных полей, возвращается пустой перечислитель.

Этот метод является частью службы обнаружения удалений. Элемент помечается в хранилище метаданных как активный, если для измененного элемента вызывается метод IReplicaMetadata::SaveItemMetadata или для неизмененного, но активного элемента вызывается метод IReplicaMetadata::ReportLiveItemByIndexedFields или IReplicaMetadata::ReportLiveItemByGlobalId. Поставщик может вызвать метод IReplicaMetadata::GetUnreportedItems или IReplicaMetadata::GetUnreportedItemsByIndexedFields для получения элементов, которые существуют в хранилище метаданных и не помечены как активные. Затем поставщик может пометить эти элементы как удаленные из хранилища метаданных.

См. также

Справочник

Интерфейс IReplicaMetadata