Функция 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 или из конструкторов и деструкторов глобальных объектов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wininet.h |
Библиотека | Wininet.lib |
DLL | Wininet.dll |