Bagikan melalui


IOpcDigitalSignatureManager::ReplaceSignatureXml method (msopc.h)

Menggantikan markup tanda tangan yang ada yang disimpan dalam bagian tanda tangan tertentu.

Sintaks

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

Parameter

[in] signaturePartName

Penunjuk antarmuka IOpcPartUri yang mewakili nama bagian dari bagian tanda tangan yang menyimpan markup tanda tangan yang ada.

[in] newSignatureXml

Buffer yang berisi markup tanda tangan yang akan menggantikan markup yang ada.

[in] count

Ukuran buffer newSignatureXml .

[out, retval] digitalSignature

Penunjuk ke antarmuka IOpcDigitalSignature baru yang mewakili tanda tangan yang berasal dari markup tanda tangan yang diteruskan di newSignatureXml.

Nilai kembali

Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.

Mengembalikan kode/nilai Deskripsi
S_OK
Metode berhasil.
E_POINTER
Setidaknya salah satu parameter signaturePartName, newSignatureXml, dan digitalSignature adalah NULL.
OPC_E_DS_DUPLICATE_PACKAGE_OBJECT_REFERENCES
0x8051002D
Buffer newSignatureXml berisi lebih dari satu elemen Referensi yang mengacu pada elemen Objek paket, tetapi hanya satu Referensi tersebut yang diizinkan.
OPC_E_DS_DUPLICATE_SIGNATURE_PROPERTY_ELEMENT
0x80510028
Buffer newSignatureXml berisi lebih dari satu elemen SignatureProperty yang memiliki atribut Id yang sama.
OPC_E_DS_EXTERNAL_SIGNATURE_REFERENCE
0x8051002F
Dalam buffer newSignatureXml , elemen Referensi mengacu pada objek yang berada di luar paket. Elemen referensi harus menunjuk ke bagian atau elemen Objek yang internal.
OPC_E_DS_INVALID_CANONICALIZATION_METHOD
0x80510022
Metode kanonisisasi yang tidak didukung diminta atau digunakan dalam buffer newSignatureXml .
OPC_E_DS_INVALID_RELATIONSHIP_TRANSFORM_XML
0x80510021
Dalam buffer newSignatureXml , elemen Transformasi yang menunjukkan penggunaan transformasi hubungan dan kriteria pemilihan untuk transformasi tidak sesuai dengan skema yang ditentukan dalam OPC.
OPC_E_DS_INVALID_SIGNATURE_COUNT
0x8051002B
Buffer newSignatureXml tidak berisi markup tanda tangan untuk tepat satu tanda tangan.
OPC_E_DS_INVALID_SIGNATURE_XML
0x8051002A
Ukuran buffer newSignatureXml adalah 0, tetapi buffer ini harus memiliki ukuran yang lebih besar dari 0.
OPC_E_DS_MISSING_CANONICALIZATION_TRANSFORM
0x80510032
Dalam buffer newSignatureXml , transformasi hubungan tidak diikuti dengan metode kanonisisasi; transformasi hubungan harus diikuti dengan metode kanonisisasi.
OPC_E_DS_MISSING_PACKAGE_OBJECT_REFERENCE
0x8051002E
Dalam buffer newSignatureXml , Referensi ke elemen Objek khusus paket tidak ditemukan.
OPC_E_DS_MISSING_SIGNATURE_ALGORITHM
0x8051002C
Markup tanda tangan di buffer newSignatureXml tidak menentukan algoritma metode tanda tangan.
OPC_E_DS_MISSING_SIGNATURE_PROPERTIES_ELEMENT
0x80510026
Dalam buffer newSignatureXml , elemen SignatureProperties tidak ditemukan.
OPC_E_DS_MISSING_SIGNATURE_PROPERTY_ELEMENT
0x80510027
Dalam buffer newSignatureXml , elemen turunan SignatureProperty dari elemen SignatureProperties tidak ditemukan.
OPC_E_DS_MISSING_SIGNATURE_TIME_PROPERTY
0x80510029
Dalam buffer newSignatureXml , elemen SignatureProperty dengan nilai atribut Id "idSignatureTime" tidak ada atau tidak dibangun dengan benar.
OPC_E_DS_MULTIPLE_RELATIONSHIP_TRANSFORMS
0x80510031
Dalam buffer newSignatureXml , lebih dari satu transformasi hubungan ditentukan untuk elemen Referensi , tetapi hanya satu transformasi hubungan yang diizinkan.
OPC_E_DS_REFERENCE_MISSING_CONTENT_TYPE
0x80510030
Nilai atribut URI dari elemen Referensi dalam buffer newSignatureXml tidak menyertakan jenis konten bagian yang direferensikan.
OPC_E_DS_SIGNATURE_PROPERTY_MISSING_TARGET
0x80510045
Dalam buffer newSignatureXml , elemen SignatureProperty tidak memiliki atribut Target yang diperlukan.
OPC_E_DS_SIGNATURE_REFERENCE_MISSING_URI
0x80510043
Elemen Referensi , yang ada di buffer newSignatureXml , memerlukan atribut URI , tetapi atribut hilang.
OPC_E_DS_UNSIGNED_PACKAGE
0x80510055
Paket tidak ditandatangani; oleh karena itu, markup tanda tangan tidak dapat diganti.
OPC_E_NO_SUCH_PART
0x80510018
Bagian yang ditentukan tidak ada.

Keterangan

Metode ini tidak memvalidasi tanda tangan yang berasal dari markup tanda tangan baru yang ada di parameter newSignatureXml .

Pemanggil harus mengonfirmasi bahwa markup tanda tangan baru, yang menggantikan markup tanda tangan yang ada di bagian tanda tangan yang ditentukan, tidak akan memutus tanda tangan.

Metode ini mengubah markup tanda tangan yang ada; sertifikat dan hubungan yang memiliki bagian tanda tangan yang ditentukan sebagai sumbernya dipertahankan.

Keamanan Thread

Objek pengemasan tidak aman untuk rangkaian.

Untuk informasi selengkapnya, lihat Memulai API Kemasan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Target Platform Windows
Header msopc.h

Lihat juga

Antarmuka Pengemasan Inti

Gambaran Umum Tanda Tangan Digital

Memulai API Kemasan

IOpcDigitalSignatureManager

Gambaran Umum

Panduan Pemrograman API Pengemasan

Referensi API Pengemasan

Sampel API Pengemasan

Kemasan Antarmuka Tanda Tangan Digital

Antarmuka Pengemasan

Referensi