CHttpServer::CallFunction

virtual int CallFunction (CHttpServerContext * pCtxt, LPTSTR pszQuery, LPTSTR pszCommand );

Valeur de retour

Une valeur de l'un des types enum suivant:

Valeur enum Description
callOK L'appel de fonction a réussi.
callParamRequired Un paramètre requis est manquant.
callBadParamCount Il y a trop ou trop peu de paramètres.
callBadCommand Impossible de trouver le nom de la commande.
callNoStackSpace Aucun espace de pile n'était disponible.
callNoStream Aucun CHtmlStream n'était disponible.
callMissingQuote Un paramètre avait un mauvais format.
callMissingParams Aucun paramètre n'était disponibles.
callBadParam Un paramètre avait un mauvais format (c.-à-d., un seul cite).

Paramètres

pCtxt

Pointeur vers un objet CHttpServerContext.

pszQuery

Un pointeur à une requête. Spécifique pour le type de commande reçu par le client. Voir les remarques pour plus d'informations.

pszCommand

Soit un pointeur vers une requête ou une valeur NULL. Spécifique pour le type de commande reçu par le client. Voir les remarques pour plus d'informations.

Remarques

Appelé par le framework pour rechercher et exécuter la fonction appropriée associée à la commande dans l'URL.

Voici une ventilation entre les paramètres et les types de méthodes a reçu:

Type de méthode pszQuery pszCommand
TÉLÉCHARGER Un pointeur vers la chaîne de requête de structure EXTENSION_CONTROL_BLOCK. NULL
PUBLIER Un pointeur vers une requête envoyée dans le corps de la commande. Pointeur vers la chaîne de requête de structure EXTENSION_CONTROL_BLOCK.

&Notenbsp ;  Auteurs de remplir formes sont conseillés d'utiliser uniquement la méthode POST en raison des incohérences de navigateur, et parce que les méthodes GET sont limités à un tampon de 1024 octets. Lors de l'écriture des formes pour ISAPI, utiliser uniquement la méthode POST, ou concevoir l'ISA afin que seule la fonction par défaut gère le formulaire.

Par exemple, certains navigateurs envoyant un formulaire via GET avec une action de:

TestLet.DLL ?Commande

tronque Command et envoyer:

TestLet.DLL?name=value

au lieu de la commande correcte:

TestLet.DLL ?Commande? nom = valeur

En tronquant Command , le navigateur supprime l'association de la fonction ISA nécessaire pour mapper la requête. À moins que la fonction Command est la fonction par défaut, le formulaire ne sera pas traité correctement.

Si vous souhaitez gérer l'analyse de la fonction EXTENSION_CONTROL_BLOCK structure lpszQueryString vous-même, substituez CallFunction et ne pas utiliser les macros PARSE_MAP . Voir Internet Server API (ISAPI) analyser les cartes pour plus d'informations sur l'utilisation de macros carte d'analyse.

Aperçu CHttpServer |  ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;CHttpServerContext, Internet Server API (ISAPI) analyser des cartes

Index