На этом шаге мы рассмотрим алгоритм добавлниея функции в расширение сервера.
Сейчас мы добавим в ISAPI-расширение сервера простую функцию по имени GetColor(). В качестве параметра она принимает один из цветов HTML и создает страницу с фоном этого цвета.
ON_PARSE_COMMAND(GetColor, CMyExtensionExtension, ITS_PSTR) ON_PARSE_COMMAND_PARAMS("color")
Рис.1. Добавление макросов
void GetColor(CHttpServerContext *pCtxt, LPCTSTR pstrColor)
void CMyExtensionExtension::GetColor(CHttpServerContext *pCtxt, LPCTSTR pstrColor)
{
StartContent(pCtxt);
WriteTitle(pCtxt);
*pCtxt << _T("You have chosen the ");
*pCtxt << pstrColor << _T(" page.\r\n");
*pCtxt << _T("<SCRIPT language=\"JavaScript\"> document.bgColor = \"");
*pCtxt << pstrColor << _T("\" </SCRIPT>\r\n");
EndContent(pCtxt);
}
net stop w3svс
net start w3svc
Следующий HTML-документ позволит проверить добавленную функцию расширения. Он состоит из простой формы, дающей пользователю возможность выбирать цвет из раскрывающегося списка. Кнопка Подача запроса служит для загрузки с сервера страницы выбранного цвета.
<!-- Form.htm -> <HTML> <HEAD> <TITLE>Форма выбора цвета</TITLE> </HEAD> <BODY> <H3> Выберите цвет из списка и нажмите кнопку SUBMIT</H3> <FORM action="myextension.dll?GetColor" method=POST> <SELECT name="color"> <option> pink <option> green <option> yellow <option> blue </SELECT> <P> <input type="submit"> </FORM> </BODY> </HTML>
http://имя_компьютера/apps/Form.htm
Рис.2. Страница Form.htm, открытая в Internet Explorer
Рис.3. Страница с выбранным цветом фона
На следующем шаге мы приведем общие сведения об ISAPI-фильтрах.