Freigeben über


ISyncMetadataStore::InitializeReplicaMetadata

Erstellt, initialisiert und speichert neue Metadaten für ein Replikat.

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

Parameter

  • pbReplicaId
    [in] Die Replikat-ID für das Replikat, das von den erstellten und initialisierten Metadaten dargestellt wird.
  • pIdParameters
    [in] Das ID-Formatschema für den Anbieter.
  • pItemCustomFields
    [in, unique, size_is(cItemCustomFields)] Die Schemainformationen für die Beschreibung der benutzerdefinierten Metadatenfelder, die den Metadatenelementen zugeordnet sind. Kann NULL sein, wenn keine benutzerdefinierten Metadatenfelder vorhanden sind.
  • cItemCustomFields
    [in] Die Anzahl der Felder in pItemCustomFields.
  • pItemCustomFieldsIndexes
    [in, unique, size_is(cItemCustomFieldsIndexes)] Die Liste der Indexschemas, die zur effizienteren Suche der Elemente im Metadatenspeicher verwendet werden können. Kann NULL sein, wenn keine Indexschemas vorhanden sind.
  • cItemCustomFieldsIndexes
    [in] Die Anzahl der Indizes in pItemCustomFieldsIndexes.

Rückgabewert

  • S_OK.

  • E_POINTER.

  • E_OUTOFMEMORY.

  • E_INVALIDARG, wenn pItemCustomFields NULL ist und cItemCustomFields nicht 0 ist, wenn pItemCustomFields nicht NULL ist und cItemCustomFields 0 ist, wenn die Replikat-ID oder die ID-Parameter ungültig sind oder wenn eines der von pItemCustomFields angegebenen benutzerdefinierten Felder ungültig ist.

  • E_UNEXPECTED, wenn der Speicher noch nicht geöffnet ist.

  • SYNC_E_METADATA_FIELD_INVALID_NAME, wenn ein in pItemCustomFieldsIndexes angegebener Feldname nicht über ein entsprechendes Feld verfügt, das in pItemCustomFields angegeben wird.

  • SYNC_E_METADATA_REPLICA_ALREADY_EXISTS, wenn bereits Metadaten für das angegebene Replikat vorhanden sind, z. B. wenn diese Methode das zweite Mal aufgerufen wurde.

Hinweise

Der von der Implementierung des Metadaten-Speicherdiensts verwendete Metadatenspeicher führt zu bestimmten Einschränkungen für die benutzerdefinierten Felder. Weitere Informationen hierzu finden Sie unter CUSTOM_FIELD_DEFINITION-Struktur.

Ein Satz benutzerdefinierter Felder kann mithilfe von pItemCustomFields für Elementmetadaten definiert werden. Jedes Feld besteht aus einem eindeutigen Zeichenfolgennamen und einem Wert. Mithilfe dieser Felder können zusätzliche Metadaten zu einem Element gespeichert werden, das andernfalls nicht vom Standardsatz der Elementmetadaten unterstützt wird. Auf die Felder kann mithilfe bestimmter Methoden für IItemMetadata, z. B. IItemMetadata::TryGetFieldByteArray oder IItemMetadata::SetFieldByteArray, zugegriffen werden.

Ein Satz von Indexschemas kann mithilfe von pItemCustomFieldsIndexes so definiert werden, dass Sätze benutzerdefinierter Felder als Indizes zum effizienten Suchen von Elementen im Metadatenspeicher verwendet werden können. Ein Indexschema kann als eindeutig definiert werden, um sicherzustellen, dass der Index ein einzelnes Element definiert. Jedes in einem Indexschema enthaltene Feld muss auch im benutzerdefinierten Feldschema vorhanden sein, das für das Replikat definiert ist. Indexfelder können in Methoden wieIReplicaMetadata::FindItemMetadataByIndexedFields und IReplicaMetadata::FindItemMetadataByUniqueIndexedFields verwendet werden.

Siehe auch

Verweis

ISyncMetadataStore-Schnittstelle