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 |