IOpcSignatureRelationshipReferenceSet::Create-Methode (msopc.h)

Erstellt einen IOpcSignatureRelationshipReference-Schnittstellenzeiger , der einen Verweis auf einen Beziehungsteil darstellt, und fügt dem Satz den neuen Schnittstellenzeiger hinzu. Alle oder eine Teilmenge der Beziehungen, die im Beziehungsteil gespeichert sind, auf den verwiesen werden soll, wird für die Signatur ausgewählt.

Syntax

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
);

Parameter

[in] sourceUri

Ein IOpcUri-Schnittstellenzeiger , der den Quell-URI der Beziehungen darstellt, die zum Signieren ausgewählt werden sollen.

[in] digestMethod

Die Digestmethode, die für die auszuwählenden Beziehungen verwendet werden soll. Um die Standard-Digestmethode zu verwenden, übergeben Sie NULL in diesem Parameter.

Wichtig Die Standard-Digestmethode muss durch Aufrufen der IOpcSigningOptions::SetDefaultDigestMethod-Methode festgelegt werden, bevor IOpcDigitalSignatureManager::Sign aufgerufen wird.
 

[in] relationshipSigningOption

Ein -Wert, der angibt, ob die für die Signatur ausgewählten Beziehungen alle oder eine Teilmenge der Beziehungen im Beziehungsteil enthalten, auf den verwiesen werden soll.

Informationen zu den Auswirkungen von relationshipSigningOption-Werten auf andere Parameter finden Sie unter Hinweise.

[in] selectorSet

Ein IOpcRelationshipSelectorSet-Schnittstellenzeiger , der verwendet werden kann, um eine Teilmenge der Beziehungen im Teil Beziehungen zu identifizieren, der für die Signatur ausgewählt werden soll.

Wenn relationshipSigningOption auf OPC_RELATIONSHIP_SIGN_PART festgelegt ist, ist selectorSetNULL.

Informationen zu selectorSet-Werten finden Sie unter Hinweise.

[in] transformMethod

Ein -Wert, der die Kanonisierungsmethode beschreibt, die auf das Beziehungsmarkup der ausgewählten Beziehungen angewendet werden soll.

Wenn relationshipSigningOptionOPC_RELATIONSHIP_SIGN_USING_SELECTORS festgelegt ist, wird der Wert von transformMethod ignoriert.

Weitere Informationen zu den Transformationsmethoden, die angewendet werden sollen, wenn relationshipSigningOption auf OPC_RELATIONSHIP_SIGN_USING_SELECTORS festgelegt ist, finden Sie unter Hinweise.

[out, retval] relationshipReference

Ein neuer IOpcSignatureRelationshipReference-Schnittstellenzeiger , der den Beziehungsteil darstellt, auf den verwiesen wird.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_INVALIDARG
Der im parameter relationshipSigningOption übergebene Wert ist kein gültiger OPC_RELATIONSHIPS_SIGNING_OPTION Enumerationswert.
E_INVALIDARG
Der im parameter transformMethod übergebene Wert ist kein gültiger OPC_CANONICALIZATION_METHOD Enumerationswert.
E_POINTER
Der sourceUri-Parameter ist NULL.
E_UNEXPECTED
Der SelectorSet-Parameter wird nicht NULL übergeben, während dem parameter relationshipSigningOption der Wert OPC_RELATIONSHIP_SIGN_PART übergeben wird.

Hinweise

Diese Methode erstellt einen Verweis auf einen Beziehungsteil. Alle oder eine Teilmenge der Beziehungen, die in einem Beziehungsteil gespeichert sind, auf den verwiesen wird, kann signiert werden, wenn die Signatur generiert wird.

Um alle Beziehungen in einem Beziehungsteil zu signieren, rufen Sie diese Methode auf, wobei der parameterwert relationshipSigningOption auf OPC_RELATIONSHIP_SIGN_PART und der selectorSet-Parameterwert auf NULL festgelegt ist.

Um eine Teilmenge der Beziehungen in einem Beziehungsteil zu signieren, rufen Sie diese Methode auf, wobei der parameterwert relationshipSigningOption auf OPC_RELATIONSHIP_SIGN_USING_SELECTORS und der selectorSet-Parameterwert auf einen IOpcRelationshipSelectorSet-Schnittstellenzeiger festgelegt ist. Um einen IOpcRelationshipSelectorSet-Schnittstellenzeiger zu erstellen, rufen Sie die CreateRelationshipSelectorSet-Methode auf.

In der folgenden Tabelle sind die Parameterwerte zusammengefasst, die für diese Methode erforderlich sind, um einen Verweis zu erstellen, der angibt, ob alle Beziehungen oder eine Teilmenge der Beziehungen (die im Beziehungsteil gespeichert sind), auf den verwiesen werden soll, signiert werden soll.

BESCHREIBUNG relationshipSigningOption Wert selectorSet Wert
Signieren aller Beziehungen im Beziehungsteil OPC_RELATIONSHIP_SIGN_PART NULL
Signieren einer Teilmenge der Beziehungen im Beziehungsteil OPC_RELATIONSHIP_SIGN_USING_SELECTORS Ein IOpcRelationshipSelectorSet-Schnittstellenzeiger
 

Wenn eine Teilmenge der Beziehungen signiert werden soll, wird die angegebene Transformationsmethode ignoriert. Wenn die Signatur generiert wird, wird stattdessen zuerst die Transformation für Beziehungen angewendet, und die zweite ist die OPC_CANONICALIZATION_C14N Kanonisierungsmethode.

Wenn ein IOpcSignatureRelationshipReference-Schnittstellenzeiger erstellt und dem Satz hinzugefügt wird, wird der Verweis, den er darstellt, beim Speichern des Pakets gespeichert.

Beziehungen, die nicht signiert werden, können entfernt, geändert oder dem Paket hinzugefügt werden, ohne dass die Signatur ungültig wird. Wenn eine Teilmenge der Beziehungen für die Signatur ausgewählt wurde und die Teilmenge geändert wird, wird die Signatur ungültig.

Wichtig Eine ausgewählte Teilmenge kann geändert werden, wenn der Beziehungstyp einer Beziehung, die einem Beziehungsteil hinzugefügt oder geändert wird, auf den verwiesen wird, mit einem Beziehungstyp übereinstimmt, der zum Auswählen einer oder mehrerer Beziehungen in der Teilmenge verwendet wurde.
 

Threadsicherheit

Das Packen von Objekten ist nicht threadsicher.

Weitere Informationen finden Sie in der Erste Schritte mit der Paketerstellungs-API.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile msopc.h

Weitere Informationen

Kernpaketschnittstellen

Erste Schritte mit der Verpackungs-API

IOpcDigitalSignatureManager

IOpcSignatureRelationshipReferenceSet

IOpcSigningOptions

OPC_CANONICALIZATION_METHOD

OPC_RELATIONSHIPS_SIGNING_OPTION

Übersichten

Programmierhandbuch zur Paketerstellungs-API

Verpackungs-API-Referenz

Beispiele für die Paket-API

Verpacken von Schnittstellen für digitale Signaturen

Verpackungsschnittstellen

Referenz