InternetSetStatusCallbackA 函数 (wininet.h)

InternetSetStatusCallback 函数设置一个回调函数,WinINet 函数可以在操作期间调用进度。

语法

INTERNET_STATUS_CALLBACK InternetSetStatusCallbackA(
  HINTERNET                hInternet,
  INTERNET_STATUS_CALLBACK lpfnInternetCallback
);

参数

hInternet

为其设置回调的句柄。

lpfnInternetCallback

指向在进行进度时要调用的回调函数的指针,或 NULL 删除现有回调函数。 有关回调函数的详细信息,请参阅 InternetStatusCallback

返回值

如果成功,则返回先前定义的状态回调函数,如果以前没有定义的状态回调函数,则返回 NULL;如果回调函数无效,则返回INTERNET_INVALID_STATUS_CALLBACK。

言论

同步函数和异步函数都使用回调函数来指示请求的进度,例如解析名称、连接到服务器等。 异步操作需要回调函数。 异步请求将调用回应用程序,INTERNET_STATUS_REQUEST_COMPLETE以指示请求已完成。

可以在任何句柄上设置回调函数,并由派生句柄继承。 可以使用 InternetSetStatusCallback更改回调函数,前提是无需使用以前的回调值即可挂起的请求。 但是,请注意,更改句柄上的回调函数不会更改派生句柄上的回调,例如 InternetConnect返回的回调。 必须在每个级别更改回调函数。

许多 WinINet 函数在网络上执行多项操作。 每个操作可能需要一段时间才能完成,并且每个操作都可能失败。

有时需要在长期操作期间显示状态信息。 可以通过设置无法删除的 Internet 状态回调函数来显示状态信息,只要任何回调或任何异步函数处于挂起状态。

启动 InternetSetStatusCallback后,可以从任何 WinINet 函数中访问回调函数,以监视时间密集型网络操作。

注意dwContext 参数时,lpfnInternetCallback 参数中指定的回调函数将不会对请求句柄的异步操作调用 HttpOpenRequest 设置为零(INTERNET_NO_CALLBACK),或者当 InternetConnectdwContext 句柄设置为零(INTERNET_NO_CALLBACK)。

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

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

注意

wininet.h 标头将 InternetSetStatusCallback 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
标头 wininet.h

另请参阅

Common Functions

InternetStatusCallback

WinINet 函数