Partager via


ISyncMetadataStore::InitializeReplicaMetadata

Crée, initialise et enregistre les nouvelles métadonnées d'un réplica.

HRESULT InitializeReplicaMetadata(
  BYTE * pbReplicaId,
  ID_PARAMETERS * pIdParameters,
  CUSTOM_FIELD_DEFINITION * pItemCustomFields,
  ULONG cItemCustomFields,
  CUSTOM_FIELDS_INDEX * pItemCustomFieldsIndexes,
  BYTE cItemCustomFieldsIndexes);

Paramètres

  • pbReplicaId
    [in] ID de réplica pour le réplica représenté par les métadonnées créées et initialisées.
  • pIdParameters
    [in] Schéma du format d'ID du fournisseur.
  • pItemCustomFields
    [in, unique, size_is(cItemCustomFields)] Informations de schéma qui décrivent les champs de métadonnées personnalisés associés aux éléments de métadonnées. Il peut s'agir d'une valeur NULL s'il n'existe aucun champ de métadonnées personnalisé.
  • cItemCustomFields
    [in] Nombre de champs contenus dans pItemCustomFields.
  • pItemCustomFieldsIndexes
    [in, unique, size_is(cItemCustomFieldsIndexes)] Liste des schémas d'index qui peuvent être utilisés pour rechercher plus efficacement des éléments dans le magasin des métadonnées. Il peut s'agir d'une valeur NULL s'il n'existe aucun schéma d'index.
  • cItemCustomFieldsIndexes
    [in] Nombre d'index contenus dans pItemCustomFieldsIndexes.

Valeur de retour

  • S_OK.

  • E_POINTER.

  • E_OUTOFMEMORY.

  • E_INVALIDARG si pItemCustomFields a la valeur NULL et cItemCustomFields est différent de 0, si pItemCustomFields a une valeur non NULL et cItemCustomFields a la valeur 0, si l'ID de réplica ou les paramètres d'ID ne sont pas valides, ou si l'un des champs personnalisés spécifiés par pItemCustomFields n'est pas valide.

  • E_UNEXPECTED si le magasin n'est pas encore ouvert.

  • SYNC_E_METADATA_FIELD_INVALID_NAME lorsqu'un nom de champ spécifié dans pItemCustomFieldsIndexes n'a pas de champ correspondant spécifié dans pItemCustomFields.

  • SYNC_E_METADATA_REPLICA_ALREADY_EXISTS lorsque les métadonnées existent déjà pour le réplica spécifié, par exemple lorsque cette méthode est appelée une deuxième fois.

Notes

Le magasin des métadonnées utilisé par l'implémentation du service de stockage des métadonnées impose certaines restrictions sur les champs personnalisés. Pour plus d'informations, consultez Structure CUSTOM_FIELD_DEFINITION.

Un ensemble de champs personnalisés peut être défini pour les métadonnées d'élément en utilisant pItemCustomFields. Chaque champ consiste en un nom de chaîne unique et une valeur. Ces champs peuvent être utilisés pour stocker des métadonnées supplémentaires concernant un élément qui n'est pas pris en charge par l'ensemble par défaut de métadonnées d'élément. Les champs sont accessibles via différentes méthodes sur IItemMetadata, comme IItemMetadata::TryGetFieldByteArray ou IItemMetadata::SetFieldByteArray.

Un ensemble de schémas d'index peut être défini à l'aide de pItemCustomFieldsIndexes afin que les ensembles de champs personnalisés puissent être utilisés comme index pour rechercher efficacement des éléments dans le magasin des métadonnées. Un schéma d'index peut être défini comme étant unique afin de garantir que l'index définit un seul élément. Chaque champ contenu dans un schéma d'index doit également exister dans le schéma de champ personnalisé qui est défini pour le réplica. Les champs d'index peuvent être utilisés dans les méthodes telles que IReplicaMetadata::FindItemMetadataByIndexedFields et IReplicaMetadata::FindItemMetadataByUniqueIndexedFields.

Voir aussi

Référence

Interface ISyncMetadataStore