C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 190 - WinInet / MFC шаг за шагом / Visual C++

Шаг 190 - WinInet

Для работы с Интернетом есть классы 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.mysite.int/");
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. То есть она должна быть в системе для корректной работы, хотя я сомневаюсь, что есть компьютер, на котором ее нет :-)


| |
Автор Каев Артем.
[AD]