CRYPTUI_VIEWCERTIFICATE_STRUCTW 结构 (cryptuiapi.h)

CRYPTUI_VIEWCERTIFICATE_STRUCT结构包含有关要查看的证书的信息。 此结构在 CryptUIDlgViewCertificate 函数中使用。

语法

typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTW {
  DWORD             dwSize;
  HWND              hwndParent;
  DWORD             dwFlags;
  LPCWSTR           szTitle;
  PCCERT_CONTEXT    pCertContext;
  LPCSTR            *rgszPurposes;
  DWORD             cPurposes;
  union {
    CRYPT_PROVIDER_DATA const *pCryptProviderData;
    HANDLE                    hWVTStateData;
  };
  BOOL              fpCryptProviderDataTrustedUsage;
  DWORD             idxSigner;
  DWORD             idxCert;
  BOOL              fCounterSigner;
  DWORD             idxCounterSigner;
  DWORD             cStores;
  HCERTSTORE        *rghStores;
  DWORD             cPropSheetPages;
  LPCPROPSHEETPAGEW rgPropSheetPages;
  DWORD             nStartPage;
} CRYPTUI_VIEWCERTIFICATE_STRUCTW, *PCRYPTUI_VIEWCERTIFICATE_STRUCTW;

成员

dwSize

CRYPTUI_VIEWCERTIFICATE_STRUCT结构的大小(以字节为单位)。

hwndParent

窗口的句柄,该窗口是 CryptUIDlgViewCertificate 生成的对话框的父级。

dwFlags

此成员可以是以下一个或多个值。

含义
CRYPTUI_HIDE_HIERARCHYPAGE
证书路径 ”页处于禁用状态。
CRYPTUI_HIDE_DETAILPAGE
“详细信息”页处于禁用状态。
CRYPTUI_DISABLE_EDITPROPERTIES
不允许用户更改属性。
CRYPTUI_ENABLE_EDITPROPERTIES
允许用户更改属性。
CRYPTUI_DISABLE_ADDTOSTORE
安装 ”按钮已禁用。
CRYPTUI_ENABLE_ADDTOSTORE
安装 ”按钮已启用。
CRYPTUI_ACCEPT_DECLINE_STYLE
允许用户接受或拒绝任何决定的页面或按钮将被禁用。
CRYPTUI_IGNORE_UNTRUSTED_ROOT
忽略不受信任的根错误。
CRYPTUI_DONT_OPEN_STORES
已知的受信任存储不会用于构建链。
CRYPTUI_ONLY_OPEN_ROOT_STORE
已知的受信任根存储区将不用于生成链。
CRYPTUI_WARN_UNTRUSTED_ROOT
仅在查看远程计算机上的证书时使用 。 如果使用此标志, 则 rghStores 的第一个元素必须是远程计算机上根存储的句柄。
CRYPTUI_ENABLE_REVOCATION_CHECKING
使用默认行为启用吊销检查。 默认行为是启用整个证书链(根证书除外)的吊销检查。 仅当 pCryptProviderDatahWVTStateData 联合成员均未传入时有效。
CRYPTUI_WARN_REMOTE_TRUST
为远程计算机生成证书链时,警告该链在远程计算机上可能不受信任。
CRYPTUI_DISABLE_EXPORT
如果设置了此标志,将在“详细信息”页上禁用“复制到文件”按钮。
CRYPTUI_ENABLE_REVOCATION_CHECK_END_CERT
仅对证书链中的叶证书启用吊销检查。 仅当 pCryptProviderDatahWVTStateData 联合成员均未传入时有效。
CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN
对证书链中的每个证书启用吊销检查。 仅当 pCryptProviderDatahWVTStateData 联合成员均未传入时有效。

注意 由于根证书很少包含允许吊销检查的信息,因此使用此选项通常会导致 CryptUIDlgViewCertificate 函数失败。 建议的选项是使用 CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT。

CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
对证书链中的每个证书启用吊销检查,根证书除外。 这是用于证书吊销检查的推荐选项。 仅当 pCryptProviderDatahWVTStateData 联合成员均未传入时有效。

注意 此标志等效于 CRYPTUI_ENABLE_REVOCATION_CHECKING。

CRYPTUI_DISABLE_HTMLLINK
禁用“证书”对话框中的“HTML 帮助”按钮 () 。
CRYPTUI_DISABLE_ISSUERSTATEMENT
禁用“证书”对话框的“常规”选项卡上的“颁发者语句”按钮。
CRYPTUI_CACHE_ONLY_URL_RETRIEVAL
禁用联机吊销检查。 设置此标志以确保 CryptUIDlgViewCertificate 函数使用本地缓存来检索证书,并且不会尝试从网络检索证书。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持此标志。

szTitle

指向以 null 结尾的字符串的指针,该字符串包含窗口的标题。

pCertContext

指向包含要显示的证书上下文 的CERT_CONTEXT 结构的指针。

rgszPurposes

指向以 null 结尾的字符串的指针数组,这些字符串包含验证此证书的目的。

cPurposes

rgszPurposes 数组中的用途数。

pCryptProviderData

如果已为证书调用 WinVerifyTrust 函数,并且还调用了 WTHelperProvDataFromStateData 函数,请传入一个指针,指向从调用 WTHelperProvDataFromStateData 中获取的状态结构的指针。 如果设置了 pCryptProviderData ,还必须设置 fpCryptProviderDataTrustedUsageidxSigneridxCertfCounterSignature

hWVTStateData

如果已为证书调用 WinVerifyTrust,并且未调用 WTHelperProvDataFromStateData,请传入 WINTRUST_DATA 结构的 hWVTStateData 成员。 如果设置了 hWVTStateData ,还必须设置 fpCryptProviderDataTrustedUsageidxSigneridxCertfCounterSignature

fpCryptProviderDataTrustedUsage

如果调用 了 WinVerifyTrust ,则这是证书是否受信任的结果。

idxSigner

要查看的签名者的索引。

idxCert

正在签名者链中查看的证书的索引。 此证书的证书上下文必须与 pCertContext 匹配。

fCounterSigner

如果正在查看反签名,则为 TRUE。 如果为 TRUE则 idxCounterSigner 必须有效。

idxCounterSigner

要查看的反签名器的索引。

cStores

生成和验证证书链时要搜索的证书存储的 rghStores 数组中的其他存储的数量。

rghStores

生成和验证证书链时要搜索的其他证书存储的 HCERTSTORE 句柄数组。

cPropSheetPages

要添加到对话框的属性页数。

rgPropSheetPages

要添加到对话框的属性页数组。 此数组中的每个页面都不会接收 PROPSHEETPAGE 结构中的 lParam 作为WM_INITDIALOG消息中的 lParam。 它将改为接收指向 CRYPTUI_INITDIALOG_STRUCT 结构的指针。 它包含 PROPSHEETPAGE 中的 lParam 和指向显示页面的CERT_CONTEXT的指针。

nStartPage

将显示的初始页的索引。 如果设置了最高位 (0x8000) ,则假定索引在去除最高位后为 rgPropSheetPages (编制索引,例如,0x8000将指示 rgPropSheetPages) 中的第一页。 如果最高位为零, 则 nStartPage 将是默认证书对话框属性页的起始索引。

注解

注意

cryptuiapi.h 标头将CRYPTUI_VIEWCERTIFICATE_STRUCT定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 cryptuiapi.h

另请参阅

CryptUIDlgViewCertificate