Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Сценарии JavaScript в активных страницах Web
<<-[Весь Текст]
Страница: из 116
 <<-
 
YPE=submit VALUE="Send">
. . .
   Исходный текст расширения ISAPI представлен в листинге 7.5. Он сделан на 
базе примера, взятого из 29 тома нашей “Библиотеки системного программиста” 
(раздел “Приложение ISHELLO” восьмой главы).
Листинг 7.5. Файл chapter7/NotebookISAPI/ishello.c
// ===============================================
// Расширение ISAPI ishello.c
// Пример расширения ISAPI, отображающего 
// содержимое cookie
//
// (C) Фролов А.В., 1997, 1998
// E-mail: [email protected]
// WWW:    http://www.glasnet.ru/~frolov
//         или
//         http://www.dials.ccas.ru/frolov
// ===============================================

#include 
#include 

// =========================================================
// Функция GetExtensionVersion
// Запись версии интерфейса ISAPI и
// строки описания расширения
// =========================================================
BOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO *pVer)
{
  // Записываем версию интерфейса ISAPI
  pVer->dwExtensionVersion = 
    MAKELONG(HSE_VERSION_MINOR,HSE_VERSION_MAJOR );

  // Записываем строку описания расширения
  lstrcpyn(pVer->lpszExtensionDesc,
    "Cookie show ISAPI DLL", HSE_MAX_EXT_DLL_NAME_LEN);

  return TRUE;
}

// =========================================================
// Функция HttpExtensionProc
// =========================================================
DWORD WINAPI HttpExtensionProc(EXTENSION_CONTROL_BLOCK *lpECB)
{
  CHAR  szBuff[4096];
  CHAR  szTempBuf[4096];
  
  DWORD  dwSize;

  // Нулевой код состояния - признак успешного выполнения
  lpECB->dwHttpStatusCode = 0;

  // Записываем в буфер заголовок HTTP и начальный
  // фрагмент формируемого динамически документа HTML
  wsprintf(szBuff,
    "Content-Type: text/html\r\n\r\n"
    "Simple ISAPI Extension\n"
    "

Hello from ISAPI Extension!

\n"); // Добавляем разделительную линию strcat(szBuff, "
"); // Добавляем версию интерфейса ISAPI wsprintf(szTempBuf, "

Extension Version: %d.%d", HIWORD(lpECB->dwVersion), LOWORD(lpECB->dwVersion)); strcat(szBuff, szTempBuf); // Название метода передачи данных wsprintf(szTempBuf, "
Method: %s", lpECB->lpszMethod); strcat(szBuff, szTempBuf); // Строка параметров запуска расширения ISAPI wsprintf(szTempBuf, "
QueryString: %s", lpECB->lpszQueryString); strcat(szBuff, szTempBuf); // Физический путь к программному файлу расширения ISAPI wsprintf(szTempBuf, "
PathTranslated: %s", lpECB->lpszPathTranslated); strcat(szBuff, szTempBuf); // Полный размер данных, которые нужно получить wsprintf(szTempBuf, "
TotalBytes: %d", lpECB->cbTotalBytes); strcat(szBuff, szTempBuf); // Тип данных wsprintf(szTempBuf, "
ContentType: %s", lpECB->lpszContentType); strcat(szBuff, szTempBuf); // Отображаем содержимое COOKIE strcat(szBuff, "


Cookie:
"); dwSize = 4096; lpECB->GetServerVariable(lpECB->ConnID, (LPSTR)"HTTP_COOKIE", (LPVOID)szTempBuf, &dwSize); strcat(

 
<<-[Весь Текст]
Страница: из 116
 <<-