Программирование для Internet (Технологии для работы в Internet. Приложение в стиле браузера), страница 2

Классы CHttpConnection, CFtpConnection, CGopherConnection используют протоколы соответственно HTTP, FTP, Gopher и представляют собой постоянное соединение с хост-компьютером (обычно протоколы не поддерживают постоянное соединение). Классы CFileFind, CFtpFileFind, CGopherFileFind служат для просмотра соответствующих каталогов и поиска файлов.

Классы WinInet обычно предназначены для написания клиентских приложений, а для написания серверных приложений можно использовать технологию ISAPI (Internet Server API), расширяющую возможности сервера HTTP (World Wide Web). ISAPI позволяет получать два типа расширений, реализуемых как модули динамически подключаемых библиотек (DLL): ISAPI-расширения и  ISAPI-фильтры. ISAPI-расширение сервера – это программный модуль, вызываемый пользователем на страницах Web, т.е. выполняется в ответ на запрос от клиентской программы (броузера). ISAPI-фильтр – это программный модуль, просматривающий и изменяющий данные, поступающие на сервер и с сервера. Создание заготовки расширения и фильтра выполняется с помощью мастера расширений ISAPI (ISAPI Extension Wizard). На 1-ом этапе настройки необходимо выполнить команду File->New, перейти на вкладку Project и выбрать из списка ISAPI Extension Wizard, а затем выполнить предлагаемые этапы настройки. Для облегчения написания приложений используются 5 классов MFC ISAPI: для ISAPI-расширений – это CHttpServer, CHttpServerContext, CHtmlStream; для ISAPI-фильтров – это CHttpFilter, ChttpFilterContext. Для каждой DLL ISAPI-расширения или DLL ISAPI-фильтра создается класс сервера или фильтра, производные соответственно от CHttpServer и от CHttpFilter. В каждой DLL имеется только по одному объекту каждого класса.

«Новые классы WinInet и ISAPI, а также совершенствование прежних средств поддержки MAPI означают, что сегодня с помощью нескольких строк программы или установленного флажка в окне настройки AppWizard можно значительно расширить возможности приложений» [л.5, стр.391].

12.2. Приложение в стиле браузера

Цель работы – создание приложения в стиле браузера, в котором можно просматривать Web-страницы при переходе по гиперссылкам и адресам URL. Пусть требуется при щелчке на кнопке вывести основную страницу Microsoft по адресу http://www.micro-soft.com.

Создание приложения облегчается тем, что в состав Visual C++ входит Microsoft Internet Explorer и ,поэтому, достаточно включить в приложение его компонент Web Browser – элемент управления на базе ActiveX, поддерживающий просмотр Web-страниц.

Для создания приложения в стиле браузера необходимо выполнить следующие этапы.

Создание проекта приложения

- Выбрать команду File->New и вкладку Projects.

- Выбрать из списка MFC AppWizard (.exe). В поле Project name ввести имя проекта Lab12_1. Нажать ОК.

- Выполнить 6 этапов настройки приложения. На этапе 1 App Wizard установить Dialog based.

Добавление Web Browser и кнопки в диалоговое окно

-  Выполнить команды Project->Add to Project->Component and Controls. Открывается окно Component and Controls Gallery с элементами Visual C++.

-  Щелкнуть дважды на строке Registered ActiveX Controls. Открывается список элементов ActiveX.

-  Щелкнуть на элементе Microsoft Web Browser Control (Web-обозреватель Microsoft) и щелкнуть на кнопке Insert.

-  В появившемся окне подтвердить имя по умолчанию CWebBrowser. Итак, элемент Web Browser образуется в палитре редактора диалоговых окон.

-  Запустить редактор диалоговых окон. Для этого дважды щелкнуть в окне просмотра (View) на идентификаторе ресурса диалогового окна IDD_Lab12_1DIALOG. Появится диалоговое окно с кнопкой “OK” и “Cancel”. Удалить подсказку “TO DO…” в окне.

-  Перетащить в диалоговое окно элемент Web Browser из нижней части палитры и отрегулировать размеры элемента.

-  Перетащить в диалоговое окно элемент кнопку из палитры и изменить надпись кнопки на Browse.

Связывание переменной с элементом Web Browser

-  Запустить ClassWizard и перейти на вкладку Member Variable.

-  Выделить идентификатор элемента Web Browser IDC_EXPLORER1 и щелкнуть на кнопке Add Variable. Открывается окно Add Member Variable.

-  Ввести в поле Member Variable name строку m_browser и нажать на OK.

Связывание кнопки Browse с функцией-обработчиком

-  Запустить ClassWizard и проверить вкладку Message Maps.

-  Выбрать из списка Object Ids строку IDC_BUTTON1 и дважды щелкнуть в списке Messages на строке BN_CLICKED. Функции-обработчику присваивается имя OnButton1().

Вывод Web-страницы по адресу

При щелчке на кнопке Browse вызывается функция-обработчик OnButton1(). Для вывода Web-страницы по адресу http://www.micro-soft.com требуется с помощью объекта m_browser элемента Web Browser вызвать функцию Navigate().

void CLab12_1Dlg::OnButton1()

{

  m_browser.Navigate(“http://www.microsoft.com”, 0,0,0,0);

}

Компиляция и запуск приложения

Запустить приложение. Щелкнуть на кнопке Browse. На экран выводится Web-страница Microsoft.

12.3. Приложение с протоколом HTTP в WinInet

Цель работы – программное использование протокола HTPP для получения HTML-кода Web-страницы с поддержкой технологии WinInet. Пусть требуется скачать HTML-код основной страницы Microsoft по адресу http://www.microsoft.com.

В диалоговом окне будет находиться кнопка Pouchenie Web_page, текстовое поле и надпись Text Web-page.

Lab12_2

Poluchenie Web-page                                       OK

                                                                           Cansel

       Text Web-page:

     

При щелчке на кнопке Poluchenie Web-page в текстовое поле выводится HTML-код страницы Microsoft.

Для создания приложения выполнить следующие этапы.

Создание проекта приложения

- Выбрать команду File->New и вкладку Projects.

- Выбрать из списка MFC AppWizard (.exe). В поле Project name ввести имя проекта Lab12_2. Нажать ОК.

- Выполнить 6 этапов настройки приложения. На этапе 1 App Wizard установить Dialog based.

Добавление элементов управления в диалоговое окно

В нашем примере необходимо добавить текстовое поле, надпись Text Web-page, кнопку с надписью Poluchenie Web-page.

-  Запустить редактор диалоговых окон. Для этого дважды щелкнуть в окне просмотра (View) на идентификаторе ресурса диалогового окна IDD_Lab12_2_DIALOG. Появится диалоговое окно. Удалить подсказку “TO DO…” в окне.

-  Добавить текстовое поле, перетащив его в окно диалога.