Функция 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.

[in] dwError

Значение ошибки, для которого отображается диалоговое окно. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION
Позволяет пользователю подтвердить перенаправление.
ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT
Отображает диалоговое окно, указывающее, что скрипт автоматического прокси-сервера недопустим.
ERROR_INTERNET_CHG_POST_IS_NON_SECURE
Отображает диалоговое окно с запросом пользователя о том, следует ли публиковать данные в небезопасном канале.
ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED
Сервер запрашивает сертификат клиента.

Возвращаемое значение для этой ошибки всегда ERROR_SUCCESS, независимо от того, выбрал ли пользователь сертификат. Если пользователь не выбрал сертификат, при последующем запросе будет предпринята попытка анонимной проверки подлинности клиента.

ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR
Уведомляет пользователя о переходе зоны на безопасный сайт.
ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR
Уведомляет пользователя о пересечении зоны с безопасного сайта.
ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR
Уведомляет пользователя о том, что публикуемые данные перенаправляются на незащищенный сайт.
ERROR_INTERNET_INCORRECT_PASSWORD
Отображает диалоговое окно с запросом имени и пароля пользователя.
ERROR_INTERNET_INVALID_CA
Указывает, что общее имя SSL-сертификата (поле имени узла) неверно. Отображает диалоговое окно Недопустимое общее имя SSL и позволяет пользователю просмотреть неверный сертификат.
ERROR_INTERNET_MIXED_SECURITY
Отображает предупреждение для пользователя о смешанном защищенном и небезопасном содержимом.
ERROR_INTERNET_POST_IS_NON_SECURE
Отображает диалоговое окно с запросом пользователя о том, следует ли публиковать данные в небезопасном канале.
ERROR_INTERNET_SEC_CERT_CN_INVALID
Указывает, что общее имя SSL-сертификата (поле имени узла) неверно. Отображает диалоговое окно Недопустимое общее имя SSL и позволяет пользователю просмотреть неверный сертификат. Также позволяет пользователю выбрать сертификат в ответ на запрос сервера.
ERROR_INTERNET_SEC_CERT_ERRORS
Отображает предупреждение для пользователя о проблемах с сертификатом сервера.
ERROR_INTERNET_SEC_CERT_DATE_INVALID
Сообщает пользователю, что срок действия SSL-сертификата истек.
ERROR_INTERNET_SEC_CERT_REV_FAILED
Отображает предупреждение для пользователя о том, что сбой проверка отзыва сертификата сервера.
ERROR_INTERNET_SEC_CERT_REVOKED
Отображает диалоговое окно, указывающее, что сертификат сервера отозван.
ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT
Отображает диалоговое окно, указывающее, что не удалось скачать скрипт автоматического прокси-сервера.

[in] dwFlags

Действия. Этот параметр может иметь одно или несколько из следующих значений.

Значение Значение
FLAGS_ERROR_UI_FILTER_FOR_ERRORS
Проверяет возвращенные заголовки на наличие ошибок. Вызов internetErrorDlg с установленным флагом после вызова HttpSendRequest для обнаружения скрытых ошибок. Например, ошибки проверки подлинности обычно скрыты, так как вызов HttpSendRequest завершается успешно, но, сканируя коды состояния, InternetErrorDlg может определить, что прокси-сервер требует проверки подлинности.
FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS
Если функция выполнена успешно, сохраняет результаты диалогового окна в дескрипторове Интернета.
FLAGS_ERROR_UI_FLAGS_GENERATE_DATA
Запрашивает у дескриптора Интернета необходимые сведения. Функция создает соответствующую структуру данных для ошибки. (Например, при сбое CN сертификата функция захватывает сертификат.)
FLAGS_ERROR_UI_SERIALIZE_DIALOGS
Сериализует диалоговые окна проверки подлинности для параллельных запросов в записи кэша паролей. Параметр lppvData должен содержать адрес указателя на структуру INTERNET_AUTH_NOTIFY_DATA , а клиент должен реализовать потокобезопасную, неблокирующую функцию обратного вызова.
FLAGS_ERROR_UI_FLAGS_NO_UI
Позволяет вызывающей объекту передавать значение NULL параметру hWnd без ошибок. Используется в ситуациях, когда пользовательский интерфейс не требуется.

[in, out] lppvData

Указатель на адрес структуры данных. Структура может отличаться для каждой ошибки, которую необходимо обработать.

Возвращаемое значение

Возвращает одно из следующих значений или значение ошибки в противном случае.

Код возврата Описание
ERROR_SUCCESS
Функция успешно завершена.

Дополнительные сведения см. в разделе ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED в параметре dwError .

ERROR_CANCELLED
Функция была отменена пользователем.
ERROR_INTERNET_FORCE_RETRY
Это означает, что функции необходимо повторить запрос. В случае проверки подлинности это означает, что пользователь нажал кнопку ОК .
ERROR_INVALID_HANDLE
Дескриптор родительского окна недопустим.

Комментарии

Всегда информируйте пользователя при возникновении любого из следующих событий:

  • 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
Если пользователь явно не решил не получать информацию об этих событиях, в противном случае пользователь непреднамеренно подвергает его значительному риску безопасности.

Как и все другие аспекты API WinINet, эту функцию нельзя безопасно вызывать из библиотеки DllMain или из конструкторов и деструкторов глобальных объектов.

Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для серверных реализаций или служб используйте службы Microsoft Windows HTTP (WinHTTP).
 

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wininet.h
Библиотека Wininet.lib
DLL Wininet.dll

См. также раздел

Включение функциональных возможностей Интернета

Функции WinINet