Método IXpsSignatureManager::Sign (xpsdigitalsignature.h)
Assina o conteúdo de um pacote XPS conforme especificado pelas opções de assinatura e retorna a assinatura digital resultante.
Sintaxe
HRESULT Sign(
[in] IXpsSigningOptions *signOptions,
[in] const CERT_CONTEXT *x509Certificate,
[out, retval] IXpsSignature **signature
);
Parâmetros
[in] signOptions
Um ponteiro para a interface IXpsSigningOptions que contém as opções de assinatura.
As propriedades SignatureMethod e DigestMethod da interface IXpsSigningOptions devem ser inicializadas antes que o ponteiro para essa interface possa ser usado no parâmetro signOptions .
[in] x509Certificate
Um ponteiro para a estrutura CERT_CONTEXT que contém o certificado X.509 a ser usado para assinatura.
[out, retval] signature
Um ponteiro para a interface IXpsSignature que contém a nova assinatura digital.
Se tiver êxito, esse método criará a parte de assinatura, a adicionará ao pacote e, na assinatura , retornará um ponteiro para a interface dessa parte de assinatura.
Retornar valor
O método retorna um HRESULT. Os valores possíveis incluem, mas não se limitam a, aqueles na tabela a seguir. Para obter valores retornados que não estão listados nesta tabela, consulte Erros de API de Assinatura Digital XPS e Erros de Documento XPS.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
O valor XPS_SIGN_FLAGS especificado que nenhum elemento de compatibilidade de marcação era esperado; no entanto, foram encontrados elementos de compatibilidade de marcação. |
|
signOptions não aponta para uma implementação de interface reconhecida. Não há suporte para a implementação personalizada de interfaces de API de Documento XPS. |
|
Um pacote XPS ainda não foi aberto no gerenciador de assinaturas. |
Comentários
Adicionar uma nova assinatura não substitui o arquivo ou fluxo original que foi lido chamando o método LoadPackageFile ou LoadPackageStream . A assinatura será adicionada à cópia na memória do pacote XPS até que o pacote seja salvo (chamando o método SavePackageToFile ou SavePackageToStream ).
Se a nova assinatura incluir partes que contêm elementos de compatibilidade de marcação, o padrão é que esse método falhe com um erro de XPS_E_MARKUP_COMPATIBILITY_ELEMENTS. Para substituir esse comportamento, chame IXpsSigningOptions::SetFlags; isso definirá o sinalizador XPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY na interface IXpsSigningOptions referenciada pelo parâmetro signOptions .
Se esse método retornar um valor HRESULT que não esteja na lista de seus valores retornados, o gerenciador de assinaturas deverá ser liberado e recriado.
Esse método terá êxito mesmo que a nova assinatura interrompa as assinaturas existentes.
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 | xpsdigitalsignature.h |