WinInet设置的回调函数为何不执行?
如下代码为何设置的回调函数HttpClientStatusCallback无论如何都不执行?谢谢!
void __stdcall HttpClientStatusCallback(HINTERNET hInternet,
DWORD dwContext,
DWORD dwInternetStatus,
LPVOID lpStatusInfo,
DWORD dwStatusInfoLen)
{
switch (dwInternetStatus)
{
case INTERNET_STATUS_REDIRECT:
break;
default:
break;
}
}
bool Connect(LPCTSTR szAddress, unsigned short nPort /* = INTERNET_DEFAULT_HTTP_PORT */,
LPCTSTR szUserAccount /* = NULL */, LPCTSTR szPassword /* = NULL */,
LPCTSTR szAgent /* = __DEFAULT_AGENT_NAME */)
{
m_hHTTPOpen = ::InternetOpen(szAgent, // agent name
INTERNET_OPEN_TYPE_PRECONFIG, // proxy option
_T(""), // proxy
_T(""), // proxy bypass
0); // flags
if (!m_hHTTPOpen)
{
DumpLastErrorMessage();
return false;
}
INTERNET_STATUS_CALLBACK hc = ::InternetSetStatusCallback(m_hHTTPOpen, HttpClientStatusCallback);
m_hHTTPConnection = ::InternetConnect(m_hHTTPOpen, // internet opened handle
szAddress, // server name
nPort, // ports
szUserAccount, // user name
szPassword, // password
INTERNET_SERVICE_HTTP, // service type
INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_NO_CACHE_WRITE, // service option
0); // context call-back option
if (!m_hHTTPConnection)
{
::CloseHandle(m_hHTTPOpen);
DumpLastErrorMessage();
return false;
}
if (::InternetAttemptConnect(0) != ERROR_SUCCESS)
{
::CloseHandle(m_hHTTPConnection);
::CloseHandle(m_hHTTPOpen);
DumpLastErrorMessage();
return false;
}
return true;
}