Передача параметров серверному обработчику
PARAMETER_DATA *pparams = (PARAMETER_DATA *)pMemoryManager › Allocate( // Распределить sizeof(PARAMETERJDATA)); // установить параметры, которые будут // переданы методу замен char *szToken = strtok(// символ (LPSTR)szArgumentData, ", "); // получить 1-й параметр pparams › index = atoi(szToken); // сохранить 1-й параметр szToken = strtok(NULL, "\""); // ПУСТОЙ УКАЗАТЕЛЬ – // пропустить пробелы, символы табуляции и пустой строки szToken = strtok(NULL, "\""); // ПУСТОЙ"УКАЗАТЕЛЬ – // получить 2-й параметр strcpy(pparams › string, szToken); // строка – сохранить // 1-й параметр // передать параметры обратно через ppArgument ppArgument = &pparams; return HTTP_SUCCESS; } // метод замены принимает два параметра в структуру [ tag_name(name="HandleTwoParameters", parse_func="parseTwoParametersFunction") ] HTTP_CODE HandleTwoParameters(PARAMETER_DATA* pArgument) { m_HttpResponse << "First parameter was " // Первый параметр был << pArgument › index << "<p>" // индекс << "Second parameter was \"" // Второй параметр был << pArgument › stnng << "\"<p>" // строка << "The ASCII code for this index is " // Код ASCII для этого индекса << pArgument › string[pArgument › index]; return HTTP_SUCCESS; }
Рис. 12.14. Просмотр pass_two_parameters.srf
Результат передачи двух параметров отображается с помощью соответствующего файла pass_two_parameters .srf (pass two parameters – "передать два параметра").
{{handler ATLServerApp.dll/pass_two_parameters}} {{HandleTwoParametersdO, "here is a bit of text")}}
Этот результат можно увидеть, перейдя по адресу http://localhost/ATLServerApp/pass_two_parameters.srf. Что получается при этом, показано на рис. 12.14.