Partager via


Méthode IOpcDigitalSignatureManager ::ReplaceSignatureXml (msopc.h)

Remplace le balisage de signature existant stocké dans un composant de signature spécifié.

Syntaxe

HRESULT ReplaceSignatureXml(
  [in]          IOpcPartUri          *signaturePartName,
  [in]          const UINT8          *newSignatureXml,
  [in]          UINT32               count,
  [out, retval] IOpcDigitalSignature **digitalSignature
);

Paramètres

[in] signaturePartName

Pointeur d’interface IOpcPartUri qui représente le nom de la partie de signature qui stocke le balisage de signature existant.

[in] newSignatureXml

Mémoire tampon qui contient le balisage de signature qui remplacera le balisage existant.

[in] count

Taille de la mémoire tampon newSignatureXml .

[out, retval] digitalSignature

Pointeur vers une nouvelle interface IOpcDigitalSignature qui représente la signature dérivée du balisage de signature passé dans newSignatureXml.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code/valeur de retour Description
S_OK
S_OK
E_POINTER
Au moins un des paramètres signaturePartName, newSignatureXml et digitalSignature est NULL.
OPC_E_DS_DUPLICATE_PACKAGE_OBJECT_REFERENCES
0x8051002D
La mémoire tampon newSignatureXml contient plusieurs éléments Reference qui font référence à l’élément Object du package, mais un seul de ces éléments est autorisé.
OPC_E_DS_DUPLICATE_SIGNATURE_PROPERTY_ELEMENT
0x80510028
La mémoire tampon newSignatureXml contient plusieurs éléments SignatureProperty qui possède le même attribut ID .
OPC_E_DS_EXTERNAL_SIGNATURE_REFERENCE
0x8051002F
Dans la mémoire tampon newSignatureXml , un élément Reference fait référence à un objet externe au package. Les éléments de référence doivent pointer vers des parties ou des éléments Object qui sont internes.
OPC_E_DS_INVALID_CANONICALIZATION_METHOD
0x80510022
Une méthode de canonisation non prise en charge a été demandée ou utilisée dans la mémoire tampon newSignatureXml .
OPC_E_DS_INVALID_RELATIONSHIP_TRANSFORM_XML
0x80510021
Dans la mémoire tampon newSignatureXml , un élément Transform qui indique l’utilisation de la transformation de relations et les critères de sélection pour la transformation n’est pas conforme au schéma spécifié dans l’OPC.
OPC_E_DS_INVALID_SIGNATURE_COUNT
0x8051002B
La mémoire tampon newSignatureXml ne contient pas le balisage de signature pour exactement une signature.
OPC_E_DS_INVALID_SIGNATURE_XML
0x8051002A
La taille de la mémoire tampon newSignatureXml est 0, mais cette mémoire tampon doit avoir une taille supérieure à 0.
OPC_E_DS_MISSING_CANONICALIZATION_TRANSFORM
0x80510032
Dans la mémoire tampon newSignatureXml , une transformation de relations n’est pas suivie d’une méthode de canonicalisation ; la transformation des relations doit être suivie d’une méthode de canonicalisation.
OPC_E_DS_MISSING_PACKAGE_OBJECT_REFERENCE
0x8051002E
Dans la mémoire tampon newSignatureXml , une référence à l’élément Object spécifique au package est introuvable.
OPC_E_DS_MISSING_SIGNATURE_ALGORITHM
0x8051002C
Le balisage de signature dans la mémoire tampon newSignatureXml ne spécifie pas d’algorithme de méthode de signature.
OPC_E_DS_MISSING_SIGNATURE_PROPERTIES_ELEMENT
0x80510026
Dans la mémoire tampon newSignatureXml , l’élément SignatureProperties est introuvable.
OPC_E_DS_MISSING_SIGNATURE_PROPERTY_ELEMENT
0x80510027
Dans la mémoire tampon newSignatureXml , l’élément enfant SignatureProperty de l’élément SignatureProperties est introuvable.
OPC_E_DS_MISSING_SIGNATURE_TIME_PROPERTY
0x80510029
Dans la mémoire tampon newSignatureXml , l’élément SignatureProperty avec la valeur d’attribut Id « idSignatureTime » n’existe pas ou n’est pas correctement construit.
OPC_E_DS_MULTIPLE_RELATIONSHIP_TRANSFORMS
0x80510031
Dans la mémoire tampon newSignatureXml , plusieurs transformations de relations sont spécifiées pour un élément Reference , mais une seule transformation de relations est autorisée.
OPC_E_DS_REFERENCE_MISSING_CONTENT_TYPE
0x80510030
La valeur d’attribut URI d’un élément Reference dans la mémoire tampon newSignatureXml n’inclut pas le type de contenu de la partie référencée.
OPC_E_DS_SIGNATURE_PROPERTY_MISSING_TARGET
0x80510045
Dans la mémoire tampon newSignatureXml , l’élément SignatureProperty ne contient pas l’attribut Target requis.
OPC_E_DS_SIGNATURE_REFERENCE_MISSING_URI
0x80510043
Un élément Reference , qui se trouve dans la mémoire tampon newSignatureXml , nécessite l’attribut URI , mais l’attribut est manquant.
OPC_E_DS_UNSIGNED_PACKAGE
0x80510055
Le package n’est pas signé ; par conséquent, le balisage de signature ne peut pas être remplacé.
OPC_E_NO_SUCH_PART
0x80510018
Le composant spécifié n’existe pas.

Remarques

Cette méthode ne valide pas la signature dérivée du nouveau balisage de signature qui se trouve dans le paramètre newSignatureXml .

L’appelant doit confirmer que le nouveau balisage de signature, qui remplace le balisage de signature existant dans la partie de signature spécifiée, n’interrompt pas la signature.

Cette méthode modifie le balisage de signature existant ; les certificats et les relations qui ont la partie de signature spécifiée comme source sont conservés.

Cohérence de thread

Les objets d’empaquetage ne sont pas thread-safe.

Pour plus d’informations, consultez la Prise en main avec l’API Packaging.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête msopc.h

Voir aussi

Principales interfaces d’empaquetage

Vue d’ensemble des signatures numériques

Prise en main avec l’API d’empaquetage

IOpcDigitalSignatureManager

Vues d'ensemble

Guide de programmation d’API d’empaquetage

Informations de référence sur l’API d’empaque

Empaquetage d’exemples d’API

Empaquetage des interfaces de signature numérique

Interfaces d’empaquetage

Référence