Metodo IXpsSignatureManager::Sign (xpsdigitalsignature.h)
Firma il contenuto di un pacchetto XPS come specificato dalle opzioni di firma e restituisce la firma digitale risultante.
Sintassi
HRESULT Sign(
[in] IXpsSigningOptions *signOptions,
[in] const CERT_CONTEXT *x509Certificate,
[out, retval] IXpsSignature **signature
);
Parametri
[in] signOptions
Puntatore all'interfaccia IXpsSigningOptions che contiene le opzioni di firma.
Le proprietà SignatureMethod e DigestMethod dell'interfaccia IXpsSigningOptions devono essere inizializzate prima che il puntatore a tale interfaccia possa essere utilizzato nel parametro signOptions .
[in] x509Certificate
Puntatore alla struttura CERT_CONTEXT che contiene il certificato X.509 da usare per la firma.
[out, retval] signature
Puntatore all'interfaccia IXpsSignature che contiene la nuova firma digitale.
In caso di esito positivo, questo metodo crea la parte della firma, la aggiunge al pacchetto e nella firma restituisce un puntatore all'interfaccia della parte della firma .
Valore restituito
Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non solo, quelli nella tabella che segue. Per i valori restituiti non elencati in questa tabella, vedere Errori dell'API firma digitale XPS e errori del documento XPS.
Codice restituito | Descrizione |
---|---|
|
Il metodo è riuscito. |
|
Il valore XPS_SIGN_FLAGS specificato che non sono previsti elementi di compatibilità di markup; Sono stati tuttavia trovati elementi di compatibilità di markup. |
|
signOptions non punta a un'implementazione dell'interfaccia riconosciuta. L'implementazione personalizzata delle interfacce API documento XPS non è supportata. |
|
Un pacchetto XPS non è ancora stato aperto nel gestore firme. |
Commenti
L'aggiunta di una nuova firma non sovrascrive il file originale o il flusso letto chiamando il metodo LoadPackageFile o LoadPackageStream . La firma verrà aggiunta alla copia in memoria del pacchetto XPS fino al salvataggio del pacchetto (chiamando il metodo SavePackageToFile o SavePackageToStream ).
Se la nuova firma include parti che contengono elementi di compatibilità di markup, il valore predefinito è che questo metodo non riesca con un errore di XPS_E_MARKUP_COMPATIBILITY_ELEMENTS. Per eseguire l'override di questo comportamento, chiamare IXpsSigningOptions::SetFlags; verrà impostato il flag XPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY nell'interfaccia IXpsSigningOptions a cui fa riferimento il parametro signOptions .
Se questo metodo restituisce un valore HRESULT non incluso nell'elenco dei valori restituiti, il gestore firme deve essere rilasciato e ricreato.
Questo metodo avrà esito positivo anche se la nuova firma interrompe le firme esistenti.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | xpsdigitalsignature.h |