Мониторинг обменных курсов валют
18c0693f

Таблица описания команд


Для таблицы описания команд в MFC-библиотеку включены пять следующих макросов:

Макрос ON_PARSE_COMMAND используется при определении команды для объекта класса CHttpServer (или наследуемого от него), поступающей от клиента, и имеет следующее описание:

ON_PARSE_COMMAND(FnName, mapClass, Args)

Параметры:

FnName - имя функции члена класса, а также и имя команды.

mapClass - имя класса указанной функции.

Args- указывает тип списка параметров и может принимать следующие значения

ITS_EMPTY - параметров нет;

ITS_PSTR - указатель на строку;

ITS_RAW - данные, предварительно не обрабатываемые. Используется в том случае, если список параметров HTTP-запроса может иметь различное число параметров;

ITS_I2 - значение типа short

ITS_I4 - значение типа long

ITS_R4 - значение типа float

ITS_R8 - значение типа double

ITS_I8 - значение типа 64-битовое integer

ITS_ARGLIST - указатель на объект типа CHttpArgList.

Например:

BEGIN_PARSE_MAP(CDerivedClass, CHttpServer) DEFAULT_PARSE_COMMAND(Myfunc, CDerivedClass) // Для запроса типа // http://LOCALSERVER/MyISAPI_1.dll?Myfunc&string1&135 ON_PARSE_COMMAND(Myfunc, // Имя функции CDerivedClass, // Имя класса ITS_PSTR ITS_I2) // Список из двух параметров: // указатель на строку, значение типа short ON_PARSE_COMMAND_PARAMS("string integer=42")

// Для запроса с тремя параметрами ON_PARSE_COMMAND(Myfunc2, CDerivedClass, ITS_PSTR ITS_I2 ITS_PSTR) ON_PARSE_COMMAND_PARAMS("string integer string2='Default value'") DEFAULT_PARSE_COMMAND(Myfunc3, CDerivedClass) ON_PARSE_COMMAND(Myfunc3, CDerivedClass, ITS_RAW) // Различное число параметров END_PARSE_MAP(CDerivedClass)

// Функции, выполняемые для обработки команд void Myfunc(CHttpServerContext* pCtxt, LPTSTR pszName, int nNumber) { } // Первый параметр стандартен для всех функций, // обрабатывающих команды, тип второго и третьего // параметра был указан в макросе ON_PARSE_COMMAND void Myfunc2(CHttpServerContext* pCtxt, LPTSTR pszName, int nNumber, LPTSTR pszTitle) { } void CDerivedClass::Myfunc3( // Используется тип параметров // ITS_RAW CHttpServerContext* pCtxt, void* pVoid, // pVoid - указатель на передаваемые данные DWORD dwBytes) // dwBytes - количество переданных байтов данных { }

Листинг 28.2.





Все публикации раздела



Самый выгодный курс обмена валюты