Compartilhar via


ISyncMetadataStore::InitializeReplicaMetadata

Cria, inicializa e salva novos metadados para uma réplica.

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

Parâmetros

  • pbReplicaId
    [in] A ID da réplica representada pelos metadados que estão sendo criados e inicializados.
  • pIdParameters
    [in] O esquema de formato de ID do provedor.
  • pItemCustomFields
    [in, unique, size_is(cItemCustomFields)] As informações de esquema que descrevem os campos de metadados personalizados que são associados aos itens de metadados. Pode ser NULL se não houver nenhum campo de metadados personalizado.
  • cItemCustomFields
    [in] O número de campos em pItemCustomFields.
  • pItemCustomFieldsIndexes
    [in, unique, size_is(cItemCustomFieldsIndexes)] A lista de esquemas de índice que pode ser usada para localizar com mais eficiência os itens no repositório de metadados. Pode ser NULL se não houver nenhum esquema de índice.
  • cItemCustomFieldsIndexes
    [in] O número de índices em pItemCustomFieldsIndexes.

Valor de retorno

  • S_OK.

  • E_POINTER.

  • E_OUTOFMEMORY.

  • E_INVALIDARG se pItemCustomFields for NULL e cItemCustomFields não for 0, ou se pItemCustomFields for não NULL e cItemCustomFields for 0; ou se a ID da réplica ou os parâmetros de ID não forem válidos; ou se um dos campos personalizados especificados por pItemCustomFields não for válido.

  • E_UNEXPECTED se o repositório ainda não estiver aberto.

  • SYNC_E_METADATA_FIELD_INVALID_NAME quando um nome de campo especificado em pItemCustomFieldsIndexes não tiver um campo correspondente especificado em pItemCustomFields.

  • SYNC_E_METADATA_REPLICA_ALREADY_EXISTS quando já existem metadados para a réplica especificada, por exemplo, quando esse método é chamado pela segunda vez.

Comentários

O repositório de metadados usado pela implementação do serviço de armazenamento de metadados impõe determinadas restrições nos campos personalizados. Para obter mais informações, consulte Estrutura CUSTOM_FIELD_DEFINITION.

Um conjunto de campos personalizados pode ser definido para metadados de item usando pItemCustomFields. Cada campo consiste em um nome de cadeia de caracteres exclusivo e um valor. Esses campos podem ser usados para armazenar quaisquer metadados adicionais sobre um item que não é aceito de outra forma pelo conjunto padrão de metadados do item. Os campos podem ser acessados através de vários métodos no IItemMetadata, como IItemMetadata::TryGetFieldByteArray ou IItemMetadata::SetFieldByteArray.

Um conjunto de esquemas de índice pode ser definido com o uso de pItemCustomFieldsIndexes de forma que conjuntos de campos personalizados possam ser usados como índices para a localização eficiente de itens no repositório de metadados. Um esquema de índice pode ser definido como exclusivo para assegurar que o índice define um item único. Cada campo contido em um esquema de índice também deve existir no esquema de campo definido para a réplica. Os campos de índice podem ser usados em métodos como IReplicaMetadata::FindItemMetadataByIndexedFields e IReplicaMetadata::FindItemMetadataByUniqueIndexedFields.

Consulte também

Referência

Interface ISyncMetadataStore