Partager via


IOpcSignatureCustomObject ::GetXml, méthode (msopc.h)

Obtient le balisage XML d’un élément Object spécifique à l’application.

Syntaxe

HRESULT GetXml(
  [out] UINT8  **xmlMarkup,
  [out] UINT32 *count
);

Paramètres

[out] xmlMarkup

Pointeur vers une mémoire tampon qui contient le balisage XML d’un élément Object et inclut les balises Object d’ouverture et de fermeture.

Dans la mémoire tampon, le balisage XML est précédé d’une marque d’ordre d’octet qui correspond à l’encodage du balisage.

Encodages et valeurs de marque d’ordre d’octet pris en charge.

Encodage Description Marque d'ordre d'octet
UTF8 UTF-8 EF BB BF
UTF16LE UTF-16, little endian FF FE
UTF16BE UTF-16, Big Endian FE FF
 

Pour obtenir un exemple de mémoire tampon avec une marque d’ordre d’octet, consultez la section Remarques.

[out] count

Pointeur vers la taille de la mémoire tampon xmlMarkup .

Valeur retournée

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

Code de retour Description
S_OK
S_OK
E_POINTER
Au moins l’un des paramètres xmlMarkup et count est NULL.

Remarques

Cette méthode alloue la mémoire utilisée par la mémoire tampon retournée dans xmlMarkup. Si la méthode réussit, appelez la fonction CoTaskMemFree pour libérer la mémoire.

Les éléments Object spécifiques à l’application sérialisés dans le balisage de signature peuvent être ajoutés, supprimés ou modifiés en remplaçant le balisage de signature.

Pour remplacer le balisage de signature, appelez la méthode IOpcDigitalSignatureManager ::ReplaceSignatureXml . L’appelant doit s’assurer que l’ajout, la suppression ou la modification d’éléments Object spécifiques à l’application n’interrompent pas la signature.

Pour signer un élément Object spécifique à l’application ou un enfant de cet élément, créez une référence à l’élément XML à signer. Créez la référence en appelant la méthode IOpcSignatureReferenceSet ::Create avec la valeur du paramètre referenceUri définie sur « # », suivie de la valeur d’attribut Id de l’élément référencé. Par exemple, si l’attribut Id de l’élément référencé est « Application », définissez referenceUri sur « #Application ».

Le tableau suivant montre une marque d’ordre d’octets au début d’une mémoire tampon xmlMarkup qui contient «< Id d’objet = » id1 »>< / Object> » :

Index d’octets de mémoire tampon 0 1 2 3 4 5 6 7 ...
Valeur UTF8 EF BB BF '<' 'O' 'b' 'j' 'e' ...
valeur UTF16LE FF FE '<' 00 'O' 00 'b' 00 ...
 

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 d’empaquetage.

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

Prise en main avec l’API d’empaquetage

IOpcDigitalSignatureManager

IOpcSignatureCustomObject

IOpcSignatureReferenceSet

Vues d'ensemble

Guide de programmation de l’API d’empaquetage

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

Exemples d’API d’empaquetage

Empaquetage des interfaces de signature numérique

Interfaces d’empaquetage

Référence