ON_PARSE_COMMAND

ON_PARSE_COMMAND ( FnName, mapClass, Args )

Параметры

FnName

Имя функции-члена. Также имя команды.

mapClass

Имя класса для сопоставления функции для.

Args

Аргументы, которые сопоставляются с параметром FnName. Смотрите примечания список символов.

Примечания

ON_PARSE_COMMAND используется макрос в карте синтаксического анализа для определения команды к объекту CHttpServer от клиента.

Функция-член, определенных FnName должны принимать указатель CHttpServerContext качестве его первого параметра. FnName имеет тип LPSTRи обозначается символом ITS_LPSTR разбора карты; то есть FnName указывает на строку, содержащую функцию-член класса mapClass.

Параметр Args может принимать одно из следующих значений:

Символ Тип или комментарий
ITS_EMPTY Параметр args не может быть пустым. Если у вас есть аргументы не используйте ITS_EMPTY.
ITS_PSTR Указатель на строку.
ITS_RAW Точно, необработанные данные, отправляемые расширение ISAPI. Не следует использовать ITS_RAW с любым другим типом параметра; Это вызовет метод ASSERT. В качестве примера см. примечания.
ITS_I2 короткий
ITS_I4 лонг
ITS_R4 значение с плавающей запятой
ITS_R8 двойной

Примеры

/ / Followingnbsp; Пример Illustrates извлечение
/ / строка и короткие, отправляемых на сервер:

BEGI&N_PARSE_MAP (CDerivedClass, CHttpServer)
   DEFAULT_PARSE_COMMAND (Myfunc, CDerivedClass)
   ON_PARSE_COMMAND (Myfunc, CDerivedClass, ITS_PSTR
    ITS_I2)
   ON_PARSE_COMMAND_PARAMS ("целое число строк = 42")
   ON_PARSE_COMMAND (Myfunc2, CDerivedClass, ITS_PSTR
    ITS_I2 ITS_PSTR)
   ON_PARSE_COMMAND_PARAMS ("строка целое
    строка2 = «Значение по умолчанию» ")
END_PARSE_MAP(CDerivedClass)

Примечание   Использовать одинарные кавычки, если включить пространства в значения по умолчанию для факультативных ITS_PSTRs.

void Myfunc (CHttpServerContext * pCtxt, LPTSTR psz&Name, int nNumber);
void Myfunc2 (CHttpServerContext * pCtxt LPTSTR pszName int nNumber, LPTSTR pszTitle);

/ / Followingnbsp; Пример извлечения Illustrates / / необработанные данные отправляются на сервер:

BEGIN_PARSE_MAP (CDerivedClass, CHttpServer)
   DEFAULT_PARSE_COMMAND (Myfunc, CDerivedClass)
   ON_PARSE_COMMAND (Myfunc, CDerivedClass, ITS_RAW)
END_PARSE_MAP(CDerivedClass)

с прототипом функции следующим образом:

 void CDerivedClass::Myfunc (CHttpServerContext * pCtxt, void * pVoid, DWORD dwBytes)

Во втором примере выше pVoid Указатель указывает данные, отправленные на ваш exte&nsion.nbsp; dwBytesПараметр содержит количество байтов в pVoid .  Если dwBytes равен нулю, pVoid не может ссылаться на что-либо.

Примечаниеnbsp;  Обработчики для команды map разбора должны принимать указатель для CHttpServerContext в качестве первого параметра, и параметры должны быть объявлены в том же порядке, в котором они определены в O&N_PARSE_COMMAND.

См. такжеnbsp;BEGI&N_PARSE_MAP, END_PARSE_MAP, ON_PARSE_COMMAND_PARAMS, DEFAULT_PARSE_COMMAND, CHttpServer

Index