Freigeben über


IOpcDigitalSignatureManager::ReplaceSignatureXml-Methode (msopc.h)

Ersetzt das vorhandene Signaturmarkup, das in einem angegebenen Signaturteil gespeichert ist.

Syntax

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

Parameter

[in] signaturePartName

Ein IOpcPartUri-Schnittstellenzeiger , der den Teilenamen des Signaturteils darstellt, in dem das vorhandene Signaturmarkup gespeichert wird.

[in] newSignatureXml

Ein Puffer, der das Signaturmarkup enthält, das das vorhandene Markup ersetzt.

[in] count

Die Größe des newSignatureXml-Puffers .

[out, retval] digitalSignature

Ein Zeiger auf eine neue IOpcDigitalSignature-Schnittstelle , die die vom Signaturmarkup abgeleitete Signatur darstellt, die in newSignatureXml übergeben 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/-wert BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_POINTER
Mindestens einer der Parameter signaturePartName, newSignatureXml und digitalSignature ist NULL.
OPC_E_DS_DUPLICATE_PACKAGE_OBJECT_REFERENCES
0x8051002D
Der newSignatureXml-Puffer enthält mehr als ein Reference-Element , das auf das Package Object-Element verweist, aber nur ein solcher Verweis ist zulässig.
OPC_E_DS_DUPLICATE_SIGNATURE_PROPERTY_ELEMENT
0x80510028
Der newSignatureXml-Puffer enthält mehr als ein SignatureProperty-Element mit demselben Id-Attribut .
OPC_E_DS_EXTERNAL_SIGNATURE_REFERENCE
0x8051002F
Im newSignatureXml-Puffer verweist ein Reference-Element auf ein Objekt, das sich außerhalb des Pakets befindet. Verweiselemente müssen auf Teile oder Objektelemente verweisen, die intern sind.
OPC_E_DS_INVALID_CANONICALIZATION_METHOD
0x80510022
Eine nicht unterstützte Kanonisierungsmethode wurde angefordert oder im puffer newSignatureXml verwendet.
OPC_E_DS_INVALID_RELATIONSHIP_TRANSFORM_XML
0x80510021
Im newSignatureXml-Puffer entspricht ein Transform-Element , das die Verwendung der Beziehungstransformation und der Auswahlkriterien für die Transformation angibt, nicht dem im OPC angegebenen Schema.
OPC_E_DS_INVALID_SIGNATURE_COUNT
0x8051002B
Der puffer newSignatureXml enthält nicht das Signaturmarkup für genau eine Signatur.
OPC_E_DS_INVALID_SIGNATURE_XML
0x8051002A
Die Größe des Puffers newSignatureXml ist 0, aber dieser Puffer muss eine Größe aufweisen, die größer als 0 ist.
OPC_E_DS_MISSING_CANONICALIZATION_TRANSFORM
0x80510032
Im Puffer newSignatureXml folgt auf eine Beziehungstransformation keine Kanonisierungsmethode. auf die Beziehungstransformation muss eine Kanonisierungsmethode folgen.
OPC_E_DS_MISSING_PACKAGE_OBJECT_REFERENCE
0x8051002E
Im puffer newSignatureXml wurde kein Verweis auf das paketspezifische Object-Element gefunden.
OPC_E_DS_MISSING_SIGNATURE_ALGORITHM
0x8051002C
Das Signaturmarkup im newSignatureXml-Puffer gibt keinen Signaturmethodenalgorithmus an.
OPC_E_DS_MISSING_SIGNATURE_PROPERTIES_ELEMENT
0x80510026
Im puffer newSignatureXml wurde das SignatureProperties-Element nicht gefunden.
OPC_E_DS_MISSING_SIGNATURE_PROPERTY_ELEMENT
0x80510027
Im puffer newSignatureXml wurde das untergeordnete SignatureProperty-Element des SignatureProperties-Elements nicht gefunden.
OPC_E_DS_MISSING_SIGNATURE_TIME_PROPERTY
0x80510029
Im newSignatureXml-Puffer ist das SignatureProperty-Element mit dem Id-Attributwert "idSignatureTime" nicht vorhanden oder nicht ordnungsgemäß erstellt.
OPC_E_DS_MULTIPLE_RELATIONSHIP_TRANSFORMS
0x80510031
Im newSignatureXml-Puffer wird für ein Reference-Element mehr als eine Beziehungstransformation angegeben, aber nur eine Beziehungstransformation ist zulässig.
OPC_E_DS_REFERENCE_MISSING_CONTENT_TYPE
0x80510030
Der URI-Attributwert eines Reference-Elements im newSignatureXml-Puffer enthält nicht den Inhaltstyp des Teils, auf das verwiesen wird.
OPC_E_DS_SIGNATURE_PROPERTY_MISSING_TARGET
0x80510045
Im newSignatureXml-Puffer fehlt dem SignatureProperty-Element das erforderliche Target-Attribut .
OPC_E_DS_SIGNATURE_REFERENCE_MISSING_URI
0x80510043
Ein Reference-Element , das sich im newSignatureXml-Puffer befindet, erfordert das URI-Attribut , aber das Attribut fehlt.
OPC_E_DS_UNSIGNED_PACKAGE
0x80510055
Das Paket ist nicht signiert. daher kann das Signaturmarkup nicht ersetzt werden.
OPC_E_NO_SUCH_PART
0x80510018
Der angegebene Teil ist nicht vorhanden.

Hinweise

Diese Methode überprüft nicht die Signatur, die vom neuen Signaturmarkup im newSignatureXml-Parameter abgeleitet ist.

Der Aufrufer muss bestätigen, dass das neue Signaturmarkup, das das vorhandene Signaturmarkup im angegebenen Signaturteil ersetzt, die Signatur nicht unterbricht.

Diese Methode ändert das vorhandene Signaturmarkup. Zertifikate und Beziehungen, die den angegebenen Signaturteil als Quelle aufweisen, werden beibehalten.

Threadsicherheit

Das Packen von Objekten ist nicht threadsicher.

Weitere Informationen finden Sie im Erste Schritte mit der Verpackungs-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

Kernverpackungsschnittstellen

Übersicht über digitale Signaturen

Erste Schritte mit der Verpackungs-API

IOpcDigitalSignatureManager

Übersichten

Programmierhandbuch zur Paketerstellungs-API

Verpackungs-API-Referenz

Beispiele für die Paket-API

Verpacken von Schnittstellen für digitale Signaturen

Verpackungsschnittstellen

Referenz