InternetErrorDlg 函数 (wininet.h)
如果存在相应的对话框,则显示传递给 InternetErrorDlg 的错误对话框。 如果使用 FLAGS_ERROR_UI_FILTER_FOR_ERRORS 标志,该函数还会检查标头中是否存在任何隐藏的错误,并在需要时显示一个对话框。
语法
DWORD InternetErrorDlg(
[in] HWND hWnd,
[in, out] HINTERNET hRequest,
[in] DWORD dwError,
[in] DWORD dwFlags,
[in, out] LPVOID *lppvData
);
参数
[in] hWnd
任何所需对话框的父窗口的句柄。 如果不需要对话框并将 FLAGS_ERROR_UI_FLAGS_NO_UI 传递给 dwFlags,则此参数可以为 NULL。
[in, out] hRequest
调用 HttpSendRequest 时使用的 Internet 连接的句柄。
[in] dwError
要为其显示对话框的错误值。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
允许用户确认重定向。 |
|
显示一个对话框,指示自动代理脚本无效。 |
|
显示一个对话框,询问用户是否在非安全通道上发布给定数据。 |
|
服务器正在请求客户端证书。
无论用户是否选择了证书,此错误的返回值始终ERROR_SUCCESS。 如果用户尚未选择证书,则将在后续请求中尝试匿名客户端身份验证。 |
|
通知用户通过区域进入安全站点。 |
|
通知用户从安全站点跨越区域。 |
|
通知用户,要发布的数据现在被重定向到不安全的站点。 |
|
显示请求用户名和密码的对话框。 |
|
指示 SSL 证书公用名 (主机名字段) 不正确。 显示“SSL 公用名无效”对话框,并允许用户查看不正确的证书。 |
|
向用户显示有关混合安全和非安全内容的警告。 |
|
显示一个对话框,询问用户是否在非安全通道上发布给定数据。 |
|
指示 SSL 证书公用名 (主机名字段) 不正确。 显示“SSL 公用名无效”对话框,并允许用户查看不正确的证书。 还允许用户选择证书以响应服务器请求。 |
|
向用户显示一条警告,显示服务器证书的问题。 |
|
告知用户 SSL 证书已过期。 |
|
向用户显示一条警告,显示服务器证书的吊销检查失败。 |
|
显示一个对话框,指示已吊销服务器证书。 |
|
显示一个对话框,指示无法下载自动代理脚本。 |
[in] dwFlags
操作。 此参数可使用以下一个或多个值。
值 | 含义 |
---|---|
|
扫描返回的标头以查找错误。 调用 HttpSendRequest 后,使用此标志设置调用 InternetErrorDlg,以便检测隐藏的错误。 例如,身份验证错误通常是隐藏的,因为对 HttpSendRequest 的调用成功完成,但通过扫描状态代码, InternetErrorDlg 可以确定代理或服务器需要身份验证。 |
|
如果函数成功, 将对话框的结果存储在 Internet 句柄中。 |
|
查询 Internet 句柄以获取所需的信息。 函数为错误构造适当的数据结构。 (例如,对于证书 CN 失败,函数会获取 certificate.) |
|
序列化密码缓存条目上并发请求的身份验证对话框。 lppvData 参数应包含指向INTERNET_AUTH_NOTIFY_DATA结构的指针的地址,并且客户端应实现线程安全的非阻塞回调函数。 |
|
允许调用方将 NULL 传递给 hWnd 参数,而不会出错。 在不需要用户界面的情况下使用。 |
[in, out] lppvData
指向数据结构地址的指针。 对于需要处理的每个错误,结构可能不同。
返回值
返回以下值之一,否则返回错误值。
返回代码 | 说明 |
---|---|
|
函数已成功完成。
有关详细信息,请参阅 dwError 参数中的ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED。 |
|
该函数已被用户取消。 |
|
这表示函数需要重做其请求。 在身份验证的情况下,这表示用户单击了 “确定 ”按钮。 |
|
父窗口的句柄无效。 |
备注
发生以下任何事件时,始终通知用户:
- ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR
- ERROR_INTERNET_INVALID_CA
- ERROR_INTERNET_POST_IS_NON_SECURE
- ERROR_INTERNET_SEC_CERT_CN_INVALID
- ERROR_INTERNET_SEC_CERT_DATE_INVALID
与 WinINet API 的所有其他方面一样,无法从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。
注意 WinINet 不支持服务器实现。 此外,不应从服务使用它。 对于服务器实现或服务,请使用 Microsoft Windows HTTP Services (WinHTTP) 。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | wininet.h |
Library | Wininet.lib |
DLL | Wininet.dll |