IReplicaMetadata::FindItemMetadataByIndexedFields
Возвращает список записей метаданных элемента, имеющих указанное значение индексированного поля.
HRESULT FindItemMetadataByIndexedFields(
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
SYNC_E_METADATA_QUERY_REQUIRES_INDEXED_FIELDS, если поле в списке ppcszCustomFieldNames не определено как поле индекса в момент инициализации метаданных.
SYNC_E_METADATA_FIELD_INVALID_NAME, если имя поля не существует в списке ppcszCustomFieldNames.
SYNC_E_METADATA_FIELD_INVALID_TYPE, если значение поля в списке ppFieldValues не совпадает с типом соответствующего поля.
Замечания
Если элементы с заданными значениями индексированных полей не существуют, то возвращается пустой перечислитель.
Пользовательские поля должны быть определены в момент первой инициализации метаданных реплики посредством передачи списка структур CUSTOM_FIELD_DEFINITION методу ISyncMetadataStore::InitializeReplicaMetadata.