Если вы используете MFC, рассматривали ли вы использование CInternetSession и CHttpFile?
Я использую их без проблем (IE8 установлен)
Быстрый фрагмент кода, который я использую:
CInternetSession internetSession;
CHttpFile *pHttpFile =
reinterpret_cast< CHttpFile* >( internetSession.OpenURL( L"www.example.com" ) );
DWORD dwStatusCode;
if ( pHttpFile->QueryInfoStatusCode( dwStatusCode ) &&
dwStatusCode == HTTP_STATUS_OK )
{
char szBuffer[ BUFFER_SIZE ];
DWORD dwBufferIndex = 0;
DWORD dwBytesRead = (DWORD)pHttpFile->Read( &szBuffer[ dwBufferIndex ], CHUNK_SIZE );
while ( dwBytesRead > 0 && dwBufferIndex < BUFFER_SIZE )
{
dwBufferIndex += dwBytesRead;
// break out if cancelled
if ( m_bCancel )
break;
dwBytesRead = (DWORD)pHttpFile->Read( &szBuffer[ dwBufferIndex ], CHUNK_SIZE );
}
szBuffer[ dwBufferIndex ] = '\0';
// szBuffer now contains the file contents
}
pHttpFile->Close();
delete pHttpFile;
Это то, что я сейчас использую - мне нужен буфер с содержимым, однако изменение этого кода для записи в файл не должно быть слишком большой проблемой.