InternetReadFileExW
中的最后一个参数是做什么用的?
根据文档:
调用者提供用于异步操作的上下文值。
但我更像是同步调用它:
if( !InternetReadFileExW(hRequest,(LPINTERNET_BUFFERSW)&net_buffer, IRF_SYNC, NULL))
那么,我应该使用什么作为最后一个参数?
要异步使用
Wininet
,需要调用InternetSetStatusCallback
函数。
https://learn.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-internetsetstatuscallback
每次更新要上传/下载的项目的进度时都会调用该函数,因此会检查
INTERNET_STATUS_REQUEST_COMPLETE
。
https://learn.microsoft.com/en-us/windows/win32/api/wininet/nc-wininet-internet_status_callback
当请求准备好时。
在InternetSetStatusCallback
页面的
备注部分是:
当
的lpfnInternetCallback
dwContext
参数设置为零(HttpOpenRequest
) 或连接句柄时,将不会在请求句柄的异步操作中调用参数中指定的回调函数当INTERNET_NO_CALLBACK
的dwContext
手柄设置为零 (InternetConnect
) 时。INTERNET_NO_CALLBACK
即如果您想使用异步,请将
dwContext
设置为 1。