Для работы с Интернетом есть классы WinInet - Windows Internet Externsion. Общая идея этих классов упростить работу с интернетом не вдаваясь в подробности работы с сокетами и протоколом TCP/IP. Для работы с классами WinInet описание их нужно подключить
#include "afxinet.h"
Основой является класс CInternetSession, который используется для установки связи и инициализации соединения. Работа начинается с создания объекта сессии. Параметров у конструктора много, но самое интересное, что они могут быть все по умолчанию :-). Можно указать имя программы, которая производит выхоз как в примере ниже, но можно и этого не делать указав NULL тогда имя классов будет получено самостоятельно путем вызова AfxGetAppName.
CInternetSession se("My Session");
Следующим шагом будет создание объекта CStdioFile.
CStdioFile* pFile = NULL;
При открытии сессии вернется указатель этого класса. Вернувшийся указатель нужно проверить на NULL. Вот как можно это сделать
CStdioFile* pFile = NULL; pFile = se.OpenURL("http://www.firststeps.ru/"); if (pFile != NULL) { }
А вот теперь можно и читать строки.
{ pFile->ReadString(cs); pFile->Close(); }
В данном случае появится только одна первая строка HTML. При необходимости прочитать весь документ можно сделать так.
while(pFile->ReadString(cs)) { ........ }
После получения файла сесию нужно закрыть.
se.Close();
Вот такой он WinInet, но он может намного больше, например, перехватить функцию OnStatusCallBack для получения информации о ходе соединения. Это виртуальная функция член класса CInternetSession.
virtual void OnStatusCallback( DWORD dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength );
Так же класс CInternetSession умеет устанавливать специфические соединения. Обращения к таким соединениям производится идеологически, также создается файл и ему присваивается указатель соединения, но только для каждого типа соединения свой класс.
GetGopherConnection -> CGopherFileFind GetHttpConnection -> CHttpFile GetFtpConnection -> CFtpConnection
Функции связанные с работой WinInet находятся в WININET.DLL. То есть она должна быть в системе для корректной работы, хотя я сомневаюсь, что есть компьютер, на котором ее нет :-)