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 函数在网络上执行多个操作。 每个操作可能需要一段时间才能完成,并且每个操作都可能失败。
在长期操作期间,有时需要显示状态信息。 可以通过设置 Internet 状态回调函数来显示状态信息,只要任何回调或任何异步函数处于挂起状态,该函数就不能删除。
启动 InternetSetStatusCallback 后,可以从任何 WinINet 函数中访问回调函数,以监视耗时的网络操作。
注意当 httpOpenRequest 的 dwContext 参数设置为零 (INTERNET_NO_CALLBACK) 时,或者当 InternetConnect 的 dwContext 句柄设置为零 (INTERNET_NO_CALLBACK) 时,将不会对请求句柄的异步操作调用 lpfnInternetCallback 参数中指定的回调函数。
与 WinINet API 的所有其他方面一样,无法从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | wininet.h |
Library | Wininet.lib |
DLL | Wininet.dll |