Поделиться через


Функция InternetSetStatusCallback (wininet.h)

Функция InternetSetStatusCallback настраивает функцию обратного вызова, которую функции WinINet могут вызывать по мере выполнения операции.

Синтаксис

INTERNET_STATUS_CALLBACK InternetSetStatusCallback(
  [in] HINTERNET                hInternet,
  [in] INTERNET_STATUS_CALLBACK lpfnInternetCallback
);

Параметры

[in] hInternet

Дескриптор, для которого задан обратный вызов.

[in] lpfnInternetCallback

Указатель на функцию обратного вызова, вызываемую при выполнении, или ЗНАЧЕНИЕ NULL для удаления существующей функции обратного вызова. Дополнительные сведения о функции обратного вызова см. в разделе InternetStatusCallback.

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

Возвращает ранее определенную функцию обратного вызова состояния при успешном выполнении, значение NULL , если ранее не была определена функция обратного вызова состояния, или INTERNET_INVALID_STATUS_CALLBACK, если функция обратного вызова недопустима.

Комментарии

Синхронные и асинхронные функции используют функцию обратного вызова для указания хода выполнения запроса, например разрешения имени, подключения к серверу и т. д. Функция обратного вызова требуется для асинхронной операции. Асинхронный запрос будет вызывать приложение с INTERNET_STATUS_REQUEST_COMPLETE, чтобы указать, что запрос завершен.

Функция обратного вызова может быть задана для любого дескриптора и наследуется производными дескрипторами. Функцию обратного вызова можно изменить с помощью InternetSetStatusCallback, если нет ожидающих запросов, которые должны использовать предыдущее значение обратного вызова. Однако обратите внимание, что изменение функции обратного вызова для дескриптора не приводит к изменению обратных вызовов в производных дескрипторов, таких как возвращенные InternetConnect. Функцию обратного вызова необходимо изменить на каждом уровне.

Многие функции WinINet выполняют несколько операций в сети. Выполнение каждой операции может занять время, и каждая из них может завершиться ошибкой.

Иногда желательно отображать сведения о состоянии во время долгосрочной операции. Вы можете отобразить сведения о состоянии, настроив функцию обратного вызова состояния в Интернете, которую невозможно удалить, пока все обратные вызовы или асинхронные функции находятся в состоянии ожидания.

После инициации InternetSetStatusCallback к функции обратного вызова можно получить доступ из любой функции WinINet для мониторинга ресурсоемких сетевых операций.

Примечание Функция обратного вызова, указанная в параметре lpfnInternetCallback , не будет вызываться для асинхронных операций для дескриптора запроса, если параметру dwContexthttpOpenRequest присвоено значение 0 (INTERNET_NO_CALLBACK), или дескриптору подключения, если для дескриптора dwContextinternetConnect задано значение 0 (INTERNET_NO_CALLBACK).

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

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

Требования

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

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

Общие функции

InternetStatusCallback

Функции WinINet