ISyncMetadataStore::InitializeReplicaMetadata
복제본에 대한 새 메타데이터를 만들고, 초기화하고, 저장합니다.
HRESULT InitializeReplicaMetadata(
BYTE * pbReplicaId,
ID_PARAMETERS * pIdParameters,
CUSTOM_FIELD_DEFINITION * pItemCustomFields,
ULONG cItemCustomFields,
CUSTOM_FIELDS_INDEX * pItemCustomFieldsIndexes,
BYTE cItemCustomFieldsIndexes);
매개 변수
- pbReplicaId
[in] 생성 및 초기화 중인 메타데이터에서 나타내는 복제본의 복제본 ID입니다.
- pIdParameters
[in] 공급자에 대한 ID 형식 스키마입니다.
- pItemCustomFields
[in, unique, size_is(cItemCustomFields)] 메타데이터 항목과 연결된 사용자 지정 메타데이터 필드를 설명하는 스키마 정보입니다. 사용자 지정 메타데이터 필드가 없으면 NULL일 수 있습니다.
- cItemCustomFields
[in] pItemCustomFields의 필드 수입니다.
- pItemCustomFieldsIndexes
[in, unique, size_is(cItemCustomFieldsIndexes)] 메타데이터 저장소에 있는 항목을 더 효율적으로 찾기 위해 사용할 수 있는 인덱스 스키마 목록입니다. 인덱스 스키마가 없으면 NULL일 수 있습니다.
- cItemCustomFieldsIndexes
[in] pItemCustomFieldsIndexes의 인덱스 수입니다.
반환 값
S_OK
E_POINTER
E_OUTOFMEMORY
pItemCustomFields가 NULL이고 cItemCustomFields가 0이 아니거나, pItemCustomFields가 NULL이 아니고 cItemCustomFields가 0이거나, 복제본 ID 또는 ID 매개 변수가 잘못되었거나, pItemCustomFields에 지정된 사용자 지정 필드 중 하나가 잘못되었으면 E_INVALIDARG입니다.
저장소가 아직 열리지 않은 경우 E_UNEXPECTED입니다.
pItemCustomFieldsIndexes에 지정된 필드 이름에 해당하는 필드가 pItemCustomFields에 지정되어 있지 않으면 SYNC_E_METADATA_FIELD_INVALID_NAME입니다.
이 메서드를 두 번 호출한 경우와 같이 지정된 복제본에 대한 메타데이터가 이미 있으면 SYNC_E_METADATA_REPLICA_ALREADY_EXISTS입니다.
주의
Metadata Storage Service 구현에 사용되는 메타데이터 저장소에는 사용자 지정 필드에 대한 몇 가지 제한 사항이 있습니다. 자세한 내용은 CUSTOM_FIELD_DEFINITION 구조를 참조하십시오.
pItemCustomFields를 사용하여 항목 메타데이터에 대한 사용자 지정 필드 집합을 정의할 수 있습니다. 각 필드는 고유 문자열 이름 및 값으로 구성되어 있습니다. 이러한 필드를 사용하여 기본 항목 메타데이터 집합에서 지원하지 않는 항목에 대한 추가 메타데이터를 저장할 수 있습니다. 이 필드는 IItemMetadata에 있는 IItemMetadata::TryGetFieldByteArray 또는 IItemMetadata::SetFieldByteArray와 같은 다양한 메서드를 사용하여 액세스할 수 있습니다.
사용자 지정 필드 집합을 메타데이터 저장소의 항목을 효율적으로 찾기 위한 인덱스로 사용할 수 있도록 pItemCustomFieldsIndexes를 사용하여 인덱스 스키마 집합을 정의할 수 있습니다. 인덱스 스키마를 고유한 것으로 정의하여 해당 인덱스가 단일 항목을 정의하도록 할 수 있습니다. 인덱스 스키마에 포함된 각 필드는 복제본에 대해 정의된 사용자 지정 필드 스키마에도 있어야 합니다. 인덱스 필드는 IReplicaMetadata::FindItemMetadataByIndexedFields 및 IReplicaMetadata::FindItemMetadataByUniqueIndexedFields와 같은 메서드에 사용할 수 있습니다.