IReplicaMetadata::FindItemMetadataByIndexedFields

Returns a list of item metadata entries that have the specified value for the indexed field.

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

Parameters

  • ppcszCustomFieldNames
    [in, size_is(cCustomFields)] The set of indexed field names that define the items for which to search.
  • ppFieldValues
    [in, size_is(cCustomFields)] The set of indexed field values that define the items for which to search. These values must be in the same order as the names in ppcszCustomFieldNames.
  • cCustomFields
    [in] The number of entries in ppcszCustomFieldNames and in ppFieldValues.
  • ppItemMetadataEnumerator
    [out] Returns the list of item metadata entries that have the specified values for the indexed fields.

Return Value

  • S_OK

  • E_POINTER

  • SYNC_E_METADATA_QUERY_REQUIRES_INDEXED_FIELDS if a field in ppcszCustomFieldNames was not specified as an index field when the metadata was initialized.

  • SYNC_E_METADATA_FIELD_INVALID_NAME if a field name in ppcszCustomFieldNames does not exist.

  • SYNC_E_METADATA_FIELD_INVALID_TYPE if a field value in ppFieldValues does not match the type of the corresponding field.

Remarks

If no items with the specified indexed field values exist, an empty enumerator is returned.

Custom fields must be established when the replica metadata is first initialized by passing a list of CUSTOM_FIELD_DEFINITION structures to ISyncMetadataStore::InitializeReplicaMetadata.

See Also

Reference

IReplicaMetadata Interface