Bagikan melalui


IXpsSignatureManager::Metode tanda tangan (xpsdigitalsignature.h)

Menandatangani konten paket XPS seperti yang ditentukan oleh opsi penandatanganan dan mengembalikan tanda tangan digital yang dihasilkan.

Sintaks

HRESULT Sign(
  [in]          IXpsSigningOptions *signOptions,
  [in]          const CERT_CONTEXT *x509Certificate,
  [out, retval] IXpsSignature      **signature
);

Parameter

[in] signOptions

Penunjuk ke antarmuka IXpsSigningOptions yang berisi opsi penandatanganan.

Catatan  

Properti SignatureMethod dan DigestMethod dari antarmuka IXpsSigningOptions harus diinisialisasi sebelum penunjuk ke antarmuka tersebut dapat digunakan dalam parameter signOptions .

 

[in] x509Certificate

Penunjuk ke struktur CERT_CONTEXT yang berisi sertifikat X.509 yang akan digunakan untuk penandatanganan.

[out, retval] signature

Penunjuk ke antarmuka IXpsSignature yang berisi tanda tangan digital baru.

Jika berhasil, metode ini membuat bagian tanda tangan, menambahkannya ke paket, dan dalam tanda tangan mengembalikan penunjuk ke antarmuka bagian tanda tangan tersebut.

Mengembalikan nilai

Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut. Untuk nilai pengembalian yang tidak tercantum dalam tabel ini, lihat Kesalahan XPS Digital Signature API dan Kesalahan Dokumen XPS.

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
XPS_E_MARKUP_COMPATIBILITY_ELEMENTS
Nilai XPS_SIGN_FLAGS menentukan bahwa tidak ada elemen kompatibilitas markup yang diharapkan; namun, elemen kompatibilitas markup ditemukan.
XPS_E_NO_CUSTOM_OBJECTS
signOptions tidak menunjuk ke implementasi antarmuka yang dikenali. Implementasi kustom antarmuka XPS Document API tidak didukung.
XPS_E_PACKAGE_NOT_OPENED
Paket XPS belum dibuka di pengelola tanda tangan.

Keterangan

Menambahkan tanda tangan baru tidak menimpa file atau aliran asli yang dibaca dengan memanggil metode LoadPackageFile atau LoadPackageStream . Tanda tangan akan ditambahkan ke salinan dalam memori paket XPS hingga paket disimpan (dengan memanggil metode SavePackageToFile atau SavePackageToStream ).

Jika tanda tangan baru menyertakan bagian yang berisi elemen kompatibilitas markup, defaultnya adalah agar metode ini gagal dengan kesalahan XPS_E_MARKUP_COMPATIBILITY_ELEMENTS. Untuk mengambil alih perilaku ini, panggil IXpsSigningOptions::SetFlags; ini akan mengatur bendera XPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY di antarmuka IXpsSigningOptions yang dirujuk oleh parameter signOptions .

Jika metode ini mengembalikan nilai HRESULT yang tidak ada dalam daftar nilai pengembaliannya, manajer tanda tangan harus dirilis dan dibuat ulang.

Metode ini akan berhasil meskipun tanda tangan baru memutus tanda tangan yang ada.

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

Lihat juga

CERT_CONTEXT

IXpsSignature

IXpsSignatureManager

IXpsSigningOptions

Spesifikasi Kertas XML

Kesalahan API Tanda Tangan Digital XPS

Kesalahan Dokumen XPS