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
如果在初始化元数据时未将 ppcszCustomFieldNames 中的某个字段指定为索引字段,则返回值为 SYNC_E_METADATA_QUERY_REQUIRES_INDEXED_FIELDS。
如果 ppcszCustomFieldNames 中的某个字段名称不存在,则返回值为 SYNC_E_METADATA_FIELD_INVALID_NAME。
如果 ppFieldValues 中的某个字段值与相应字段的类型不匹配,则返回值为 SYNC_E_METADATA_FIELD_INVALID_TYPE。
备注
如果不存在具有指定索引字段值的非活动项,则返回空枚举器。
此方法属于删除检测服务的一部分。当对变更项调用 IReplicaMetadata::SaveItemMetadata 后或者对未变更但仍处于活动状态的项调用 IReplicaMetadata::ReportLiveItemByIndexedFields 或 IReplicaMetadata::ReportLiveItemByGlobalId 后,元数据存储区中的某个项会被标记为处于活动状态。提供程序可以调用 IReplicaMetadata::GetUnreportedItems
或 IReplicaMetadata::GetUnreportedItemsByIndexedFields 来获取元数据存储区中未报告为处于活动状态的项。然后,提供程序可以将这些项标记为在元数据存储区中已删除。