IXpsSignatureManager::Sign-Methode (xpsdigitalsignature.h)
Signiert den Inhalt eines XPS-Pakets gemäß den Signaturoptionen und gibt die resultierende digitale Signatur zurück.
Syntax
HRESULT Sign(
[in] IXpsSigningOptions *signOptions,
[in] const CERT_CONTEXT *x509Certificate,
[out, retval] IXpsSignature **signature
);
Parameter
[in] signOptions
Ein Zeiger auf die IXpsSigningOptions-Schnittstelle , die die Signaturoptionen enthält.
Die Eigenschaften SignatureMethod und DigestMethod der IXpsSigningOptions-Schnittstelle müssen initialisiert werden, bevor der Zeiger auf diese Schnittstelle im signOptions-Parameter verwendet werden kann.
[in] x509Certificate
Ein Zeiger auf die CERT_CONTEXT-Struktur , die das X.509-Zertifikat enthält, das zum Signieren verwendet werden soll.
[out, retval] signature
Ein Zeiger auf die IXpsSignature-Schnittstelle , die die neue digitale Signatur enthält.
Bei erfolgreicher Ausführung erstellt diese Methode den Signaturteil, fügt ihn dem Paket hinzu und gibt in der Signatur einen Zeiger auf die Schnittstelle dieses Signaturteils zurück.
Rückgabewert
Die Methode gibt ein HRESULT zurück. Mögliche Werte sind unter anderem die Werte in der folgenden Tabelle. Rückgabewerte, die in dieser Tabelle nicht aufgeführt sind, finden Sie unter XPS Digital Signature API Errors and XPS Document Errors .
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich ausgeführt. |
|
Der XPS_SIGN_FLAGS Wert hat angegeben, dass keine Markupkompatibilitätselemente erwartet wurden. Es wurden jedoch Markupkompatibilitätselemente gefunden. |
|
signOptions verweist nicht auf eine erkannte Schnittstellenimplementierung. Die benutzerdefinierte Implementierung von XPS-Dokument-API-Schnittstellen wird nicht unterstützt. |
|
Im Signatur-Manager wurde noch kein XPS-Paket geöffnet. |
Hinweise
Das Hinzufügen einer neuen Signatur überschreibt nicht die ursprüngliche Datei oder den ursprünglichen Stream, der durch Aufrufen der LoadPackageFile- oder LoadPackageStream-Methode gelesen wurde. Die Signatur wird der Speicherkopie des XPS-Pakets hinzugefügt, bis das Paket gespeichert wird (durch Aufrufen der SavePackageToFile- oder SavePackageToStream-Methode ).
Wenn die neue Signatur Teile enthält, die Markupkompatibilitätselemente enthalten, schlägt diese Methode standardmäßig mit dem Fehler XPS_E_MARKUP_COMPATIBILITY_ELEMENTS. Um dieses Verhalten zu überschreiben, rufen Sie IXpsSigningOptions::SetFlags auf. Dadurch wird das XPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY-Flag in der IXpsSigningOptions-Schnittstelle festgelegt, auf die vom parameter signOptions verwiesen wird.
Wenn diese Methode einen HRESULT-Wert zurückgibt, der sich nicht in der Liste der Rückgabewerte befindet, sollte der Signatur-Manager freigegeben und neu erstellt werden.
Diese Methode ist auch dann erfolgreich, wenn die neue Signatur vorhandene Signaturen unterbricht.
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 | xpsdigitalsignature.h |