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




Приложение ISFORM - часть 3


//

// (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>

// Прототипы функций перекодировки

void DecodeStr(char *szString);

char DecodeHex(char *str);

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

// Функция GetExtensionVersion

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

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

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

BOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO *pVer)

{

  // Записываем версию интерфейса ISAPI

  pVer->dwExtensionVersion =

    MAKELONG(HSE_VERSION_MINOR,HSE_VERSION_MAJOR );

  // Записываем строку описания расширения

  lstrcpyn(pVer->lpszExtensionDesc,

    "Form Parser ISAPI DLL", HSE_MAX_EXT_DLL_NAME_LEN);

  return TRUE;

}

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

// Функция HttpExtensionProc

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

DWORD WINAPI HttpExtensionProc(EXTENSION_CONTROL_BLOCK *lpECB)

{

  CHAR  szBuff[4096];

  CHAR  szTempBuf[4096];

  char * szPtr;

  char * szParam;

 

  // Нулевой код состояния - признак успешного выполнения

  lpECB->dwHttpStatusCode = 0;

  // Записываем в буфер заголовок HTTP и начальный

  // фрагмент формируемого динамически документа HTML

  wsprintf(szBuff,

    "Content-Type: text/html\r\n\r\n"

    "<HTML><HEAD><TITLE>Simple ISAPI Extension</TITLE></HEAD>\n"

    "<BODY BGCOLOR=#FFFFFF><H2>Information from ECB</H2>\n");

  // Добавляем версию интерфейса ISAPI

  wsprintf(szTempBuf, "<P>Extension Version: %d.%d",

    HIWORD(lpECB->dwVersion), LOWORD(lpECB->dwVersion));

  strcat(szBuff, szTempBuf);




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