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 для получения элементов, которые существуют в хранилище метаданных и не помечены как активные. Затем поставщик может пометить эти элементы как удаленные из хранилища метаданных.