Método IXpsSignatureManager::Sign (xpsdigitalsignature.h)
Firma el contenido de un paquete XPS según lo especificado por las opciones de firma y devuelve la firma digital resultante.
Sintaxis
HRESULT Sign(
[in] IXpsSigningOptions *signOptions,
[in] const CERT_CONTEXT *x509Certificate,
[out, retval] IXpsSignature **signature
);
Parámetros
[in] signOptions
Puntero a la interfaz IXpsSigningOptions que contiene las opciones de firma.
Las propiedades SignatureMethod y DigestMethod de la interfaz IXpsSigningOptions deben inicializarse antes de que el puntero a esa interfaz se pueda usar en el parámetro signOptions .
[in] x509Certificate
Puntero a la estructura de CERT_CONTEXT que contiene el certificado X.509 que se va a usar para la firma.
[out, retval] signature
Puntero a la interfaz IXpsSignature que contiene la nueva firma digital.
Si se ejecuta correctamente, este método crea la parte de firma, la agrega al paquete y, en la firma , devuelve un puntero a la interfaz de esa parte de firma.
Valor devuelto
El método devuelve un valor HRESULT. Entre los valores posibles se incluyen, entre otros, los de la tabla siguiente. Para obtener los valores devueltos que no aparecen en esta tabla, vea XpS Digital Signature API Errors and XPS Document Errors (Errores de documentos XPS y XPS).
Código devuelto | Descripción |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
El valor XPS_SIGN_FLAGS especificó que no se esperaba ningún elemento de compatibilidad de marcado; sin embargo, se encontraron elementos de compatibilidad de marcado. |
|
signOptions no apunta a una implementación de interfaz reconocida. No se admite la implementación personalizada de interfaces de LA API de documentos XPS. |
|
Todavía no se ha abierto un paquete XPS en el administrador de firmas. |
Comentarios
Al agregar una nueva firma, no se sobrescribe el archivo o secuencia original que se leyó llamando al método LoadPackageFile o LoadPackageStream . La firma se agregará a la copia en memoria del paquete XPS hasta que se guarde el paquete (llamando al método SavePackageToFile o SavePackageToStream ).
Si la nueva firma incluye partes que contienen elementos de compatibilidad de marcado, el valor predeterminado es que este método produzca un error de XPS_E_MARKUP_COMPATIBILITY_ELEMENTS. Para invalidar este comportamiento, llame a IXpsSigningOptions::SetFlags; esto establecerá la marca XPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY en la interfaz IXpsSigningOptions a la que hace referencia el parámetro signOptions .
Si este método devuelve un valor HRESULT que no está en la lista de sus valores devueltos, se debe liberar y volver a crear el administrador de firmas.
Este método se realizará correctamente incluso si la nueva firma interrumpe las firmas existentes.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 R2 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | xpsdigitalsignature.h |