IXpsSignatureManager::Sign 方法 (xpsdigitalsignature.h)
簽署由簽署選項所指定的 XPS 套件內容,並傳回產生的數位簽名。
語法
HRESULT Sign(
[in] IXpsSigningOptions *signOptions,
[in] const CERT_CONTEXT *x509Certificate,
[out, retval] IXpsSignature **signature
);
參數
[in] signOptions
IXpsSigningOptions 介面的指標,其中包含簽署選項。
必須先初始化 IXpsSigningOptions 介面的 SignatureMethod 和 DigestMethod 屬性,才能在 signOptions 參數中使用該介面的指標。
[in] x509Certificate
CERT_CONTEXT 結構的指標,其中包含要用於簽署的 X.509 憑證。
[out, retval] signature
IXpsSignature 介面的指標,其中包含新的數字簽名。
如果成功,這個方法會建立簽章元件、將它新增至封裝,而 簽章 中的會傳回該簽章元件的介面指標。
傳回值
方法會傳回 HRESULT。 可能的值包括下列數據表中的值,但不限於這些值。 如需此表格中未列出的傳回值,請參閱 XPS 數位簽名 API 錯誤 和 XPS 檔錯誤。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
指定沒有標記相容性專案的 XPS_SIGN_FLAGS 值;不過,找到標記相容性專案。 |
|
signOptions 不會指向已辨識的介面實作。 不支援 XPS 檔 API 介面的自定義實作。 |
|
尚未在簽章管理員中開啟 XPS 套件。 |
備註
新增簽章並不會藉由呼叫 LoadPackageFile 或 LoadPackageStream 方法來覆寫讀取的原始檔案或數據流。 簽章將會新增至 XPS 套件的記憶體內部復本,直到封裝儲存 (,方法是呼叫 SavePackageToFile 或 SavePackageToStream 方法) 。
如果新的簽章包含包含標記相容性元素的元件,則這個方法的預設值會失敗,並出現 XPS_E_MARKUP_COMPATIBILITY_ELEMENTS錯誤。 若要覆寫此行為,請呼叫 IXpsSigningOptions::SetFlags;這會在 signOptions 參數所參考的 IXpsSigningOptions 介面中設定XPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY旗標。
如果這個方法傳回的 HRESULT 值不在其傳回值清單中,則應該釋放並重新建立簽章管理員。
即使新的簽章中斷現有的簽章,這個方法仍會成功。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | xpsdigitalsignature.h |