ON_PARSE_COMMAND

ON_PARSE_COMMAND ( FnName, mapClass, Args )

Parâmetros

FnName

O nome da função de membro. Também o nome do comando.

mapClass

O nome da classe para mapear a função para.

Args

Os argumentos que mapeiam para do parâmetro FnName. Consulte "Comentários" para obter uma lista de símbolos.

Observações

A macro ON_PARSE_COMMAND é usada em um mapa de análise para definir um comando para um objeto CHttpServer de um cliente.

A função de membro identificada por FnName deve ter um ponteiro CHttpServerContext como seu primeiro parâmetro. FnName é do tipo LPSTRe é identificado com o símbolo ITS_LPSTR no mapa de análise; ou seja, FnName aponta para uma Cadeia de caracteres que contém a função de membro na classe mapClass.

O parâmetro Args pode assumir uma das seguintes valores:

Símbolo Tipo ou comentário
ITS_EMPTY Args não pode estar em branco. Use ITS_EMPTY se você tiver sem argumentos.
ITS_PSTR Um ponteiro para uma Cadeia de caracteres.
ITS_RAW Os dados exatos, crus enviados para a extensão ISAPI. Não use ITS_RAW com qualquer outro tipo de parâmetro; para fazer isso irá causar um ASSERT. Consulte "Comentários" para obter um exemplo.
ITS_I2 um curto
ITS_I4 um longo
ITS_R4 um fundo de maneio
ITS_R8 um duplo

Exemplos

/ / Followingnbsp; exemplo Illustrates extraindo
/ / uma string e um curto enviados para o servidor:

BEGI&N_PARSE_MAP (CDerivedClass, CHttpServer)
   DEFAULT_PARSE_COMMAND (Myfunc, CDerivedClass)
   ON_PARSE_COMMAND (Myfunc, CDerivedClass, ITS_PSTR
    ITS_I2)
   ON_PARSE_COMMAND_PARAMS ("número inteiro do seqüência de caracteres = 42")
   ON_PARSE_COMMAND (Myfunc2, CDerivedClass, ITS_PSTR
    ITS_I2 ITS_PSTR)
   ON_PARSE_COMMAND_PARAMS ("seqüência de caracteres inteiro
    String2 = 'Valor padrão' ")
END_PARSE_MAP(CDerivedClass)

&Notanbsp;  Usar aspas simples se você incorporar espaços para os valores padrão para opcional ITS_PSTRs.

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

/ / Followingnbsp; exemplo Illustrates extraindo / / dados brutos enviados para o servidor:

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

com o protótipo de função como segue:

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

&No segundo exemplo acima, a pVoid ponteiro aponta para os dados enviados para seu extension.nbsp; O dwBytes parâmetro tem uma Contar de bytes em pVoid .  Se dwBytes for zero, pVoid não podem apontar para qualquer coisa.

&Notanbsp;  Os manipuladores para um comando de mapa de análise devem ter um ponteiro para um CHttpServerContext como o primeiro parâmetro, e os parâmetros devem ser declarados na mesma ordem em que eles estão definidos no ON_PARSE_COMMAND.

Consulte tambémnbsp;BEGI&N_PARSE_MAP, END_PARSE_MAP, ON_PARSE_COMMAND_PARAMS, DEFAULT_PARSE_COMMAND, CHttpServer

Index