Metodo IOpcDigitalSignatureManager::ReplaceSignatureXml (msopc.h)

Sostituisce il markup di firma esistente archiviato in una parte di firma specificata.

Sintassi

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

Parametri

[in] signaturePartName

Puntatore all'interfaccia IOpcPartUri che rappresenta il nome della parte della parte della firma in cui è archiviato il markup della firma esistente.

[in] newSignatureXml

Buffer contenente il markup della firma che sostituirà il markup esistente.

[in] count

Dimensioni del buffer newSignatureXml .

[out, retval] digitalSignature

Puntatore a una nuova interfaccia IOpcDigitalSignature che rappresenta la firma derivata dal markup della firma passato in newSignatureXml.

Valore restituito

Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice/valore restituito Descrizione
S_OK
Il metodo è riuscito.
E_POINTER
Almeno uno dei parametri signaturePartName, newSignatureXml e digitalSignature è NULL.
OPC_E_DS_DUPLICATE_PACKAGE_OBJECT_REFERENCES
0x8051002D
Il buffer newSignatureXml contiene più di un elemento Reference che fa riferimento all'elemento Object del pacchetto, ma è consentito un solo elemento Reference .
OPC_E_DS_DUPLICATE_SIGNATURE_PROPERTY_ELEMENT
0x80510028
Il buffer newSignatureXml contiene più di un elemento SignatureProperty con lo stesso attributo Id .
OPC_E_DS_EXTERNAL_SIGNATURE_REFERENCE
0x8051002F
Nel buffer newSignatureXml un elemento Reference fa riferimento a un oggetto esterno al pacchetto. Gli elementi di riferimento devono puntare a parti o elementi Object interni.
OPC_E_DS_INVALID_CANONICALIZATION_METHOD
0x80510022
È stato richiesto o usato un metodo di canonizzazione non supportato nel buffer newSignatureXml .
OPC_E_DS_INVALID_RELATIONSHIP_TRANSFORM_XML
0x80510021
Nel buffer newSignatureXml , un elemento Transform che indica l'uso della trasformazione delle relazioni e i criteri di selezione per la trasformazione non sono conformi allo schema specificato in OPC.
OPC_E_DS_INVALID_SIGNATURE_COUNT
0x8051002B
Il buffer newSignatureXml non contiene il markup della firma per una sola firma.
OPC_E_DS_INVALID_SIGNATURE_XML
0x8051002A
Le dimensioni del buffer newSignatureXml sono 0, ma questo buffer deve avere una dimensione maggiore di 0.
OPC_E_DS_MISSING_CANONICALIZATION_TRANSFORM
0x80510032
Nel buffer newSignatureXml una trasformazione delle relazioni non è seguita da un metodo di canonizzazione; la trasformazione delle relazioni deve essere seguita da un metodo di canonizzazione.
OPC_E_DS_MISSING_PACKAGE_OBJECT_REFERENCE
0x8051002E
Nel buffer newSignatureXml non è stato trovato un riferimento all'elemento Object specifico del pacchetto.
OPC_E_DS_MISSING_SIGNATURE_ALGORITHM
0x8051002C
Il markup della firma nel buffer newSignatureXml non specifica un algoritmo del metodo di firma.
OPC_E_DS_MISSING_SIGNATURE_PROPERTIES_ELEMENT
0x80510026
Nel buffer newSignatureXml l'elemento SignatureProperties non è stato trovato.
OPC_E_DS_MISSING_SIGNATURE_PROPERTY_ELEMENT
0x80510027
Nel buffer newSignatureXml l'elemento figlio SignatureProperty dell'elemento SignatureProperties non è stato trovato.
OPC_E_DS_MISSING_SIGNATURE_TIME_PROPERTY
0x80510029
Nel buffer newSignatureXml l'elemento SignatureProperty con il valore dell'attributo Id "idSignatureTime" non esiste o non è costruito correttamente.
OPC_E_DS_MULTIPLE_RELATIONSHIP_TRANSFORMS
0x80510031
Nel buffer newSignatureXml vengono specificate più trasformazioni di relazioni per un elemento Reference , ma è consentita una sola trasformazione delle relazioni.
OPC_E_DS_REFERENCE_MISSING_CONTENT_TYPE
0x80510030
Il valore dell'attributo URI di un elemento Reference nel buffer newSignatureXml non include il tipo di contenuto della parte a cui si fa riferimento.
OPC_E_DS_SIGNATURE_PROPERTY_MISSING_TARGET
0x80510045
Nel buffer newSignatureXml l'elemento SignatureProperty manca l'attributo Target richiesto.
OPC_E_DS_SIGNATURE_REFERENCE_MISSING_URI
0x80510043
Un elemento Reference , che si trova nel buffer newSignatureXml , richiede l'attributo URI , ma l'attributo è mancante.
OPC_E_DS_UNSIGNED_PACKAGE
0x80510055
Il pacchetto non è firmato; pertanto, il markup della firma non può essere sostituito.
OPC_E_NO_SUCH_PART
0x80510018
La parte specificata non esiste.

Commenti

Questo metodo non convalida la firma derivata dal nuovo markup della firma incluso nel parametro newSignatureXml .

Il chiamante deve confermare che il nuovo markup della firma, che sostituisce il markup della firma esistente nella parte della firma specificata, non interromperà la firma.

Questo metodo modifica il markup della firma esistente; i certificati e le relazioni con la parte della firma specificata come origine vengono mantenuti.

Thread safety

I pacchetti degli oggetti non sono thread-safe.

Per altre informazioni, vedere l'Introduzione con l'API per la creazione di pacchetti.

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 msopc.h

Vedi anche

Interfacce di creazione di pacchetti principali

Panoramica delle firme digitali

Introduzione con l'API per la creazione di pacchetti

IOpcDigitalSignatureManager

Cenni preliminari

Guida alla programmazione dell'API per la creazione di pacchetti

Informazioni di riferimento sulle API per la creazione di pacchetti

Esempi di API per la creazione di pacchetti

Creazione di pacchetti di interfacce di firma digitale

Interfacce di creazione di pacchetti

Riferimento