指定した一連のインデックス付きフィールド値があり、現在メタデータ ストアのアクティブな項目としてマーク付けされておらず、まだ削除済みとマーク付けされていない項目の一覧を返します。
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 を呼び出して、メタデータ ストアに存在していてアクティブと報告されない項目を取得することができます。次に、プロバイダーは、メタデータ ストア内でこれらの項目に削除済みのマークを付けることができます。