Сервер Web своими руками. Язык HTML, приложения CGI и ISAPI




Приложение ISHELLO


В качестве нашего первого расширения ISAPI мы предлагаем приложение ISHELLO, выполняющее простейшие функции.

Вызов расширения ishello.dll выполняется из формы, исходный текст которой приведен в листинге 8.1.

Листинг 8.1. Файл chap8\ishello\ishello.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

<HTML>

  <HEAD>

    <TITLE>ISAPI Script Test</TITLE>

  </HEAD>

  <BODY BGCOLOR=#FFFFFF>

    <H1>Вызов расширения ISAPI</H1>

    <FORM METHOD=POST     ACTION="http://frolov/scripts/ishello.dll?Param1|Param2|Param3">

      <INPUT TYPE=submit VALUE="Send">

    </FORM>

  </BODY>

</HTML>

Расширение вызывается в параметре ACTION оператора <FORM> аналогично тому, как это делается для программ CGI.

Расширение ishello.dll динамически создает документ HTML, представленный на рис. 8.1.

Рис. 8.1. Документ HTML, созданный динамически расширением ishello.dll

В верхней части этого документа отображается содержимое некоторых полей структуры EXTENSION_CONTROL_BLOCK, а в нижней в качетсве примера отображается содержимое переменной ALL_HTTP, полученное с помощью функции GetServerVariable.

Исходный текст расширения ishello.dll представлен в листинге 8.2.

Листинг 8.2. Файл chap8\ishello\ishello.c

// ===============================================

// Расширение ISAPI ishello.c

// Пример простейшего расширения ISAPI

//

// (C) Фролов А.В., 1997

// E-mail: frolov@glas.apc.org

// WWW:    http://www.glasnet.ru/~frolov

//         или

//         http://www.dials.ccas.ru/frolov

// ===============================================

#include <windows.h>

#include <httpext.h>

// =============================================================

// Функция GetExtensionVersion

// Запись версии интерфейса ISAPI и

// строки описания расширения

// =============================================================

BOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO *pVer)




Содержание  Назад  Вперед