IReplicaMetadata::FindItemMetadataByUniqueIndexedFields

返回索引字段具有指定值的唯一项元数据条目。

HRESULT FindItemMetadataByUniqueIndexedFields(
  LPCWSTR * ppcszCustomFieldNames,
  IFieldValue ** ppFieldValues,
  BYTE cCustomFields,
  IItemMetadata ** ppItemMetadata);

参数

  • ppcszCustomFieldNames
    [in, size_is(cCustomFields)] 一组定义要搜索的项的索引字段名称。这些字段名称的顺序必须与调用 ISyncMetadataStore::InitializeReplicaMetadata 时用于指定索引的顺序相同。
  • ppFieldValues
    [in, size_is(cCustomFields)] 一组定义要搜索的项的索引字段值。这些值的顺序必须与 ppcszCustomFieldNames 中的名称顺序相同。
  • cCustomFields
    [in] ppcszCustomFieldNames 和 ppFieldValues 中的条目数。
  • ppItemMetadata
    [out] 返回索引字段具有指定值的唯一项元数据条目。

返回值

  • S_OK

  • 如果找不到匹配项,则返回值为 S_FALSE。

  • E_POINTER

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

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

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

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

备注

通过将一列 CUSTOM_FIELD_DEFINITION 结构传递到 ISyncMetadataStore::InitializeReplicaMetadata 来首次初始化副本元数据时,必须建立自定义字段。

通过将一列 CUSTOM_FIELDS_INDEX 结构传递到 ISyncMetadataStore::InitializeReplicaMetadata 来首次初始化副本元数据时,必须建立索引字段并将其标记为唯一。

请参阅

参考

IReplicaMetadata 接口