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) 时,或者当 InternetConnectdwContext 句柄设置为零 (INTERNET_NO_CALLBACK) 时,将不会对请求句柄的异步操作调用 lpfnInternetCallback 参数中指定的回调函数。

与 WinINet API 的所有其他方面一样,无法从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。

注意 WinINet 不支持服务器实现。 此外,不应从服务使用它。 对于服务器实现或服务,请使用 Microsoft Windows HTTP Services (WinHTTP)
 

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 wininet.h
Library Wininet.lib
DLL Wininet.dll

另请参阅

常用函数

InternetStatusCallback

WinINet 函数