subglobal1 link | subglobal1 link | subglobal1 link | subglobal1 link | subglobal1 link | subglobal1 link | subglobal1 link
subglobal2 link | subglobal2 link | subglobal2 link | subglobal2 link | subglobal2 link | subglobal2 link | subglobal2 link
subglobal3 link | subglobal3 link | subglobal3 link | subglobal3 link | subglobal3 link | subglobal3 link | subglobal3 link
subglobal4 link | subglobal4 link | subglobal4 link | subglobal4 link | subglobal4 link | subglobal4 link | subglobal4 link
subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link
subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link
subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link
subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link

Delphi->статьи->функции WinInet

small logo

Для работы с Интернетом в Visual C++ есть классы WinInet - Windows Internet Externsion. Они необходимы, чтобы упростить работу с интернетом не вдаваясь в подробности работы с сокетами и протоколом TCP/IP. Для работы с классами WinInet описание их нужно подключить: #include "afxinet.h".

Основой является класс - это класс CInternetSession. Он используется для установки связи и инициализации соединения. Работа начинается с создания объекта сессии. Параметров у конструктора много, но самое интересное, что они могут быть все по умолчанию. Вот небольшой примерчик :

CInternetSession se("My Session");

Следующим шагом будет создание объекта CStdioFile.

CStdioFile* pFile = NULL;

При открытии сессии вернется указатель этого класса. Вернувшийся указатель нужно проверить на NULL. Вот как можно это сделать

CStdioFile* pFile = NULL;

pFile = se.OpenURL("http://www.firststeps.ru/");

if (pFile != NULL)

{

// Все OK - можно работать

}

 

А строки читаем вот как:

{

pFile->ReadString(cs);

pFile->Close();

}

В данном случае появится только одна первая строка HTML. При необходимости прочитать весь документ можно сделать так.

while(pFile->ReadString(cs))

{

........ // и читаем...

}

После получения файла сессию нужно закрыть.

se.Close();

WinInet может намного больше если ,например, перехватить виртуальную функцию OnStatusCallBack для получения информации о ходе соединения:

virtual void OnStatusCallback( DWORD dwContext,

DWORD dwInternetStatus, LPVOID lpvStatusInformation,

DWORD dwStatusInformationLength );

Так же класс CInternetSession умеет устанавливать специфические соединения. Обращения к таким соединениям производится идеологически, также создается файл и ему присваивается указатель соединения, но только для каждого типа соединения свой класс.

GetGopherConnection -> CGopherFileFind

GetHttpConnection -> CHttpFile

GetFtpConnection -> CFtpConnection

Функции связанные с работой WinInet находятся в WININET.DLL. То есть она должна быть в системе для корректной работы, а если у тебя нету ее - беги на рынок и покупай :)

 

Вся информация на сайте является интелектуальной собственностью. Перепечатка или распространение без разрешения автора запрещена

Copiright©: GRIENDERS 2006 ака Маслаков Александр


Hosted by uCoz