Compartilhar via


Método IOpcSignatureRelationshipReferenceSet::Create (msopc.h)

Cria um ponteiro de interface IOpcSignatureRelationshipReference que representa uma referência a uma parte Relações e adiciona o novo ponteiro de interface ao conjunto. Todos ou um subconjunto das relações armazenadas na parte Relações a serem referenciadas são selecionados para assinatura.

Sintaxe

HRESULT Create(
  [in]          IOpcUri                            *sourceUri,
  [in]          LPCWSTR                            digestMethod,
  [in]          OPC_RELATIONSHIPS_SIGNING_OPTION   relationshipSigningOption,
  [in]          IOpcRelationshipSelectorSet        *selectorSet,
  [in]          OPC_CANONICALIZATION_METHOD        transformMethod,
  [out, retval] IOpcSignatureRelationshipReference **relationshipReference
);

Parâmetros

[in] sourceUri

Um ponteiro de interface IOpcUri que representa o URI de origem das relações a serem selecionadas para assinatura.

[in] digestMethod

O método digest a ser usado para as relações a serem selecionadas. Para usar o método de resumo padrão, passe NULL nesse parâmetro.

Importante O método de resumo padrão deve ser definido chamando o método IOpcSigningOptions::SetDefaultDigestMethod antes que IOpcDigitalSignatureManager::Sign seja chamado.
 

[in] relationshipSigningOption

Um valor que indica se as relações selecionadas para assinatura incluem todos ou um subconjunto das relações na parte Relações a ser referenciada.

Para obter informações sobre o efeito dos valores relationshipSigningOption em outros parâmetros, consulte Comentários.

[in] selectorSet

Um ponteiro de interface IOpcRelationshipSelectorSet que pode ser usado para identificar um subconjunto de relações na parte Relações a ser selecionada para assinatura.

Se relationshipSigningOption estiver definido como OPC_RELATIONSHIP_SIGN_PART, selectorSet será NULL.

Para obter informações sobre os valores de selectorSet , consulte Comentários.

[in] transformMethod

Um valor que descreve o método de canonicalização a ser aplicado à marcação de relação das relações selecionadas.

Se relationshipSigningOption for definido OPC_RELATIONSHIP_SIGN_USING_SELECTORS, o valor de transformMethod será ignorado.

Para obter mais informações sobre os métodos de transformação a serem aplicados quando relationshipSigningOption estiver definido como OPC_RELATIONSHIP_SIGN_USING_SELECTORS, consulte Comentários.

[out, retval] relationshipReference

Um novo ponteiro de interface IOpcSignatureRelationshipReference que representa a parte Relações referenciadas.

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_INVALIDARG
O valor passado no parâmetro relationshipSigningOption não é um valor de enumeração OPC_RELATIONSHIPS_SIGNING_OPTION válido.
E_INVALIDARG
O valor passado no parâmetro transformMethod não é um valor de enumeração OPC_CANONICALIZATION_METHOD válido.
E_POINTER
O parâmetro sourceUri é NULL.
E_UNEXPECTED
O parâmetro selectorSet não está sendo passado NULL enquanto o parâmetro relationshipSigningOption é passado um valor de OPC_RELATIONSHIP_SIGN_PART.

Comentários

Esse método cria uma referência a uma parte Relações. Todo ou um subconjunto das relações armazenadas em uma parte relações referenciada pode ser assinado quando a assinatura é gerada.

Para assinar todas as relações em uma parte Relações, chame esse método com o valor do parâmetro relationshipSigningOption definido como OPC_RELATIONSHIP_SIGN_PART e o valor do parâmetro selectorSet definido como NULL.

Para assinar um subconjunto das relações em uma parte Relações, chame esse método com o valor do parâmetro relationshipSigningOption definido como OPC_RELATIONSHIP_SIGN_USING_SELECTORS e o valor do parâmetro selectorSet definido como um ponteiro de interface IOpcRelationshipSelectorSet . Para criar um ponteiro de interface IOpcRelationshipSelectorSet , chame o método CreateRelationshipSelectorSet .

A tabela a seguir resume os valores de parâmetro exigidos por esse método para criar uma referência que indica se todas as relações ou um subconjunto das relações (que são armazenadas na parte Relações a serem referenciadas) devem ser assinadas.

Descrição relationshipSigningOption Valor selectorSet Valor
Assinar todas as relações na parte Relações OPC_RELATIONSHIP_SIGN_PART NULL
Assinar um subconjunto das relações na parte Relações OPC_RELATIONSHIP_SIGN_USING_SELECTORS Um ponteiro de interface IOpcRelationshipSelectorSet
 

Se um subconjunto de relações for assinado, o método de transformação especificado será ignorado. Em vez disso, quando a assinatura é gerada, a primeira transformação aplicada é a Transformação relações e a segunda é a OPC_CANONICALIZATION_C14N método de canonicalização.

Quando um ponteiro de interface IOpcSignatureRelationshipReference é criado e adicionado ao conjunto, a referência que ele representa é salva quando o pacote é salvo.

As relações que não serão assinadas podem ser removidas, modificadas ou adicionadas ao pacote sem invalidar a assinatura. Se um subconjunto de relações tiver sido selecionado para assinatura e o subconjunto for alterado, a assinatura será invalidada.

Importante Um subconjunto selecionado poderá ser alterado se o tipo de relação de uma relação adicionada ou modificada em uma parte Relações referenciada corresponder a um tipo de relação que foi usado para selecionar uma ou mais relações no subconjunto.
 

Acesso thread-safe

Os objetos de empacotamento não são thread-safe.

Para obter mais informações, consulte o Introdução com a API de Empacotamento.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho msopc.h

Confira também

Principais interfaces de empacotamento

Introdução com a API de Empacotamento

IOpcDigitalSignatureManager

IOpcSignatureRelationshipReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

OPC_RELATIONSHIPS_SIGNING_OPTION

Visões gerais

Guia de Programação da API de Empacotamento

Referência da API de Empacotamento

Exemplos de API de empacotamento

Empacotando interfaces de assinatura digital

Interfaces de empacotamento

Referência