Compartilhar via


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

Cria um ponteiro de interface IOpcSignatureReference que representa uma referência a um elemento XML a ser assinado.

Sintaxe

HRESULT Create(
  [in]          IUri                        *referenceUri,
  [in]          LPCWSTR                     referenceId,
  [in]          LPCWSTR                     type,
  [in]          LPCWSTR                     digestMethod,
  [in]          OPC_CANONICALIZATION_METHOD transformMethod,
  [out, retval] IOpcSignatureReference      **reference
);

Parâmetros

[in] referenceUri

O URI do elemento XML referenciado.

Defina o valor desse parâmetro como um URI que representa "#" seguido pelo valor do atributo Id do elemento referenciado: "#<elementIdValue>".

Para obter exemplos, consulte a seção Comentários.

[in] referenceId

O atributo ID do elemento Reference que representa a referência na marcação de assinatura. Para omitir o atributo Id , defina esse valor de parâmetro como NULL.

[in] type

O atributo Type do elemento Reference que representa a referência na marcação de assinatura. Para omitir o atributo Type , defina esse valor de parâmetro como NULL.

[in] digestMethod

O método digest a ser usado para a marcação XML a ser referenciada. Para usar o método digest padrão, defina esse valor de parâmetro como NULL.

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

[in] transformMethod

O método de canonicalização a ser usado para a marcação XML a ser referenciada.

[out, retval] reference

Um novo ponteiro de interface IOpcSignatureReference que representa a referência ao elemento XML a ser assinado.

Retornar valor

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

Valor/código retornado Descrição
S_OK
O método foi bem-sucedido.
E_INVALIDARG
O valor passado no parâmetro transformMethod não é válido OPC_CANONICALIZATION_METHOD valor de enumeração.
E_POINTER
O parâmetro referenceUri é NULL.
OPC_E_DS_PACKAGE_REFERENCE_URI_RESERVED
0x80510025
O valor do atributo URI reservado do elemento Reference da assinatura para o objeto de pacote está sendo usado como o valor do atributo URI de uma Referência a um elemento Object personalizado.

Comentários

Esse método cria uma referência a um elemento XML que é assinado quando a assinatura é gerada. O elemento referenciado pode ser um elemento Object específico do aplicativo ou um filho de um Objeto específico do aplicativo.

Para fazer referência a um elemento XML para assinatura, defina o valor do parâmetro referenceUri como um URI que representa "#" seguido pelo valor do atributo Id do elemento referenciado, conforme mostrado na tabela a seguir.

referenceUri Valor como Cadeia de Caracteres Elemento Referenciado {1>Elemento Description<1}
"#idMyCustomObject" "<Object Id="idMyCustomObject">...</Object>" Um elemento Object específico do aplicativo.
"#idMyElement" "<Object><MyElement Id="idMyElement">...</MyElement>...</Object>" Um elemento filho de um Objeto específico do aplicativo.
 

Esse método não cria a referência ao elemento Object específico do pacote a ser assinado; essa referência é criada automaticamente quando a assinatura é gerada.

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

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

Interfaces de empacotamento principais

Introdução com a API de Empacotamento

IOpcDigitalSignatureManager

IOpcSignatureReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

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