Partager via


IOpcSignatureRelationshipReferenceSet ::Create, méthode (msopc.h)

Crée un pointeur d’interface IOpcSignatureRelationshipReference qui représente une référence à un composant Relations et ajoute le nouveau pointeur d’interface à l’ensemble. L’ensemble ou un sous-ensemble des relations stockées dans la partie Relations à référencer sont sélectionnés pour la signature.

Syntaxe

HRESULT Create(
  [in]          IOpcUri                            *sourceUri,
  [in]          LPCWSTR                            digestMethod,
  [in]          OPC_RELATIONSHIPS_SIGNING_OPTION   relationshipSigningOption,
  [in]          IOpcRelationshipSelectorSet        *selectorSet,
  [in]          OPC_CANONICALIZATION_METHOD        transformMethod,
  [out, retval] IOpcSignatureRelationshipReference **relationshipReference
);

Paramètres

[in] sourceUri

Pointeur d’interface IOpcUri qui représente l’URI source des relations à sélectionner pour la signature.

[in] digestMethod

Méthode digest à utiliser pour les relations à sélectionner. Pour utiliser la méthode digest par défaut, transmettez NULL dans ce paramètre.

Important La méthode digest par défaut doit être définie en appelant la méthode IOpcSigningOptions ::SetDefaultDigestMethod avant que IOpcDigitalSignatureManager ::Sign soit appelé.
 

[in] relationshipSigningOption

Valeur qui indique si les relations sélectionnées pour la signature incluent la totalité ou un sous-ensemble des relations dans la partie Relations à référencer.

Pour plus d’informations sur l’effet des valeurs relationshipSigningOption sur d’autres paramètres, consultez Remarques.

[in] selectorSet

Pointeur d’interface IOpcRelationshipSelectorSet qui peut être utilisé pour identifier un sous-ensemble de relations dans la partie Relations à sélectionner pour la signature.

Si relationshipSigningOption est défini sur OPC_RELATIONSHIP_SIGN_PART, selectorSet a la valeur NULL.

Pour plus d’informations sur les valeurs selectorSet , consultez Remarques.

[in] transformMethod

Valeur qui décrit la méthode de canonisation à appliquer au balisage de relation des relations sélectionnées.

Si relationshipSigningOption est défini OPC_RELATIONSHIP_SIGN_USING_SELECTORS, la valeur de transformMethod est ignorée.

Pour plus d’informations sur les méthodes de transformation à appliquer lorsque relationshipSigningOption est défini sur OPC_RELATIONSHIP_SIGN_USING_SELECTORS, consultez Remarques.

[out, retval] relationshipReference

Nouveau pointeur d’interface IOpcSignatureRelationshipReference qui représente la partie Relations référencée.

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_INVALIDARG
La valeur passée dans le paramètre relationshipSigningOption n’est pas une valeur d’énumération OPC_RELATIONSHIPS_SIGNING_OPTION valide.
E_INVALIDARG
La valeur passée dans le paramètre transformMethod n’est pas une valeur d’énumération OPC_CANONICALIZATION_METHOD valide.
E_POINTER
Le paramètre sourceUri est NULL.
E_UNEXPECTED
Le paramètre selectorSet n’est pas transmis null alors que le paramètre relationshipSigningOption est passé une valeur de OPC_RELATIONSHIP_SIGN_PART.

Remarques

Cette méthode crée une référence à un composant Relationships. L’ensemble ou un sous-ensemble des relations stockées dans une partie Relations référencée peut être signé lorsque la signature est générée.

Pour signer toutes les relations d’une partie Relations, appelez cette méthode avec la valeur du paramètre relationshipSigningOption définie sur OPC_RELATIONSHIP_SIGN_PART et la valeur du paramètre selectorSet définie sur NULL.

Pour signer un sous-ensemble des relations dans une partie Relations, appelez cette méthode avec la valeur du paramètre relationshipSigningOption définie sur OPC_RELATIONSHIP_SIGN_USING_SELECTORS et la valeur du paramètre selectorSet définie sur un pointeur d’interface IOpcRelationshipSelectorSet . Pour créer un pointeur d’interface IOpcRelationshipSelectorSet , appelez la méthode CreateRelationshipSelectorSet .

Le tableau suivant récapitule les valeurs de paramètre requises par cette méthode pour créer une référence qui indique si toutes les relations ou un sous-ensemble des relations (qui sont stockées dans la partie Relations à référencer) doivent être signées.

Description relationshipSigningOption Valeur selectorSet Valeur
Signer toutes les relations dans le composant Relations OPC_RELATIONSHIP_SIGN_PART NULL
Signer un sous-ensemble des relations dans le composant Relations OPC_RELATIONSHIP_SIGN_USING_SELECTORS Pointeur d’interface IOpcRelationshipSelectorSet
 

Si un sous-ensemble de relations doit être signé, la méthode de transformation spécifiée est ignorée. Au lieu de cela, lorsque la signature est générée, la première transformation appliquée est la transformation de relations, et la seconde est la méthode de canonisation OPC_CANONICALIZATION_C14N .

Lorsqu’un pointeur d’interface IOpcSignatureRelationshipReference est créé et ajouté à l’ensemble, la référence qu’il représente est enregistrée lors de l’enregistrement du package.

Les relations qui ne seront pas signées peuvent être supprimées, modifiées ou ajoutées au package sans invalider la signature. Si un sous-ensemble de relations a été sélectionné pour la signature et que le sous-ensemble est modifié, la signature est invalidée.

Important Un sous-ensemble sélectionné peut être modifié si le type de relation d’une relation ajoutée ou modifiée dans une partie Relations référencée correspond à un type de relation utilisé pour sélectionner une ou plusieurs relations dans le sous-ensemble.
 

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

IOpcSignatureRelationshipReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

OPC_RELATIONSHIPS_SIGNING_OPTION

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