IOpcCertificateEnumerator::GetCurrent 方法 (msopc.h)

获取枚举器当前位置的 CERT_CONTEXT 结构。

语法

HRESULT GetCurrent(
  [out, retval] const CERT_CONTEXT **certificate
);

参数

[out, retval] certificate

指向 CERT_CONTEXT 结构的指针。 如果方法成功,请调用 CertFreeCertificateContext 函数以释放 结构的内存。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码/值 说明
S_OK
方法成功。
E_POINTER
partReference 参数为 NULL
OPC_E_ENUM_COLLECTION_CHANGED
0x80510050
枚举器无效,因为基础集已更改。
OPC_E_ENUM_INVALID_POSITION
0x80510053
枚举器无法从当前位置执行此操作。
OPC_E_DS_EXTERNAL_SIGNATURE
0x8051001E
目标为签名部件具有外部目标模式的关系;签名部分必须位于包内。
OPC_E_DS_INVALID_CERTIFICATE_RELATIONSHIP
0x8051001D
数字签名证书类型的关系具有外部目标模式。

有关此关系类型的详细信息,请参阅 OPC

OPC_E_DS_INVALID_RELATIONSHIP_TRANSFORM_XML
0x80510021
指示关系转换的使用和转换的选择条件的 Transform 元素不符合 OPC 中指定的架构。
OPC_E_DS_MISSING_CERTIFICATE_PART
0x80510056
包含证书且是数字签名证书类型关系目标的部件不存在。

有关此关系类型的详细信息,请参阅 OPC

OPC_E_DS_SIGNATURE_PROPERTY_MISSING_TARGET
0x80510045
SignatureProperty 元素缺少所需的 Target 属性。
OPC_E_UNEXPECTED_CONTENT_TYPE
0x80510005
部件的内容类型不同于 OPC、 ECMA-376 第 2 部分) 中指定的预期内容类型 (,或者部件内容与部件的内容类型不匹配。

注解

如果 CERT_CONTEXT 结构表示的证书已损坏或不是 X.509 证书,则此方法将返回错误;此外,调用方使用的签名策略决定签名是否仍会进行验证。 返回此类错误后,对 MoveNextMovePrevious 方法的调用将继续循环访问枚举器。

创建枚举器时,当前位置位于枚举器的第一个指针之前。 若要将当前位置设置为第一个指针,请在创建枚举器后调用 MoveNext 方法。

线程安全性

打包对象不是线程安全的。

有关详细信息,请参阅打包 API 的入门

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 msopc.h

另请参阅

Certificates

核心打包接口

数字签名概述

使用打包 API 入门

IOpcCertificateEnumerator

IOpcCertificateSet

概述

打包 API 编程指南

打包 API 参考

打包 API 示例

打包接口

引用