CHttpServerContext::ServerSupportFunction

BOOL ServerSupportFunction (DWORD dwHSERRequest, LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType );

Valeur de retour

Différent de zéro en cas de succès, sinon 0.

Paramètres

dwHSERRequest

Une valeur d'Extension du serveur HTTP. Consultez la section Remarques pour obtenir une liste des valeurs prises en charge.

lpvBuffer

Lorsqu'il est utilisé avec HSE_REQ_SEND_RESPONSE_HEADER, elle pointe vers une chaîne null statut facultatif fin (par exemple, « 401 accès refusé »). Si ce tampon est null, une réponse par défaut de "200 OK" sera envoyé par cette fonction. Lorsqu'il est utilisé avec HSE_REQ_DONE_WITH_SESSION, elle pointe vers un DWORD indiquant le code d'État de la demande.

lpdwSize

Lorsqu'il est utilisé avec HSE_REQ_SEND_RESPONSE_HEADER, il souligne la taille de la mémoire tampon lpdwDataType.

lpdwDataType

Lorsqu'il est utilisé avec HSE_REQ_SEND_RESPONSE_HEADER, c'est une chaîne terminée par null pointer aux en-têtes facultatifs ou aux données d'être annexés et envoyé avec l'en-tête. Si c'est NULL, l'en-tête sera mis fin par une paire de "\r\n".

&Notenbsp ;  Fonctions objectif général devraient avoir une valeur de dwHSERequest plue de HSE_REQ_END_RESERVED. Valeurs de HSE_REQ_END_RESERVED sont réservées aux ServerSupportFunctions obligatoires et ne doivent pas être utilisés.

Remarques

Appelez cette fonction membre pour fournir l'ISA avec certaines fonctions d'usage général, ainsi que des fonctions qui sont spécifiques à l'implémentation du serveur HTTP.

La valeur Extension HTTP Server représentée par dwHSERRequest peut être l'une des opérations suivantes:

HSE_REQ_SEND_URL_REDIRECT_RESP

Envoie un 302 ( URL Redirec t) message au client. Aucun traitement supplémentaire n'est nécessaire après l'appel. Cette opération est semblable à la spécification « URI : lt ;URL > "dans un en-tête de script CGI. La variable lpvBuffer doit pointer sur une chaîne d'URL de fin nulle. Variable lpdwSize doit avoir la taille de lpvBuffer. Variable lpdwDataType est ignoré.

HSE_REQ_SEND_URL

Envoie les données spécifiées par l'URL au client que si le client avait demandé cette URL. La Null fin URL indiqué par lpvBuffer doit être sur le serveur et ne devez pas spécifier d'informations protocole (c'est-à-dire, il doit commencer avec un '/'). Aucun traitement supplémentaire n'est requis après cet appel. Variable lpdwSize pointe vers un DWORD tenant la taille de lpvBuffer. Variable lpdwDataType est ignoré.

HSE_REQ_SEND_RESPONSE_HEADER

En-tête de réponse serveur envoie un HTTP complet y compris le statut, version du serveur, temps de message et version MIME. L'extension ISA ou serveur devrait ajouter d'autres en-têtes HTTP à la fin, comme le Type de contenu, Content-Length et ainsi de suite, suivi d'un supplément "\r\n".

HSE_REQ_DONE_WITH_SESSION

Si l'extension ISA ou le serveur veut conserver la session car il a étendu les besoins de traitement, il faut indiquer le serveur lorsque la session est terminée afin que le serveur peut fermer et libérer les structures connexes. Les variables lpvBuffer, lpdwSizeet lpdwDataType sont tous ignorés.

HSE_REQ_END_RESERVED

Fonctions supérieures à cette valeur sont spécifique au serveur et ne peuvent pas être disponibles sur tous les serveurs web qui prennent en charge ISAPI.

HSE_REQ_MAP_URL_TO_PATH

Le paramètre lpvBuffer est un pointeur vers la mémoire tampon qui contient le chemin d'accès logique à l'entrée et le chemin d'accès physique à la sortie. Le paramètre lpdwSize est un pointeur vers le DWORD contenant la taille de la mémoire tampon passée en lpvBuffer à l'entrée, et le nombre d'octets placé dans la mémoire tampon de sortie. Le paramètre lpdwDataType est ignoré). Une extension spécifique à Microsoft.

HSE_REQ_GET_SSPI_INFO

Le lpvBuffer est renseigné avec le handle de contexte et * lpdwDataType est renseigné avec la poignée des titres de compétences. Un handle de contexte spécifie un type pointeur ou un identificateur de type. Une poignée de credential spécifie l'authentification et l'autorisation.

HSE_REQ_TRANSMIT_FILE

Voir TransmitFile pour une méthode plus facile de transmettre un fichier à un demandeur.

&Notenbsp ;  Le serveur ne garantit pas que les tampons sont grandes, assez avant de remplissage dans les poignées et lpdwSize n'est pas mis à jour pour tenir compte de la quantité de données copiées dans la mémoire tampon de lpvBuffer . Étant donné que ceux-ci sont fixés à des structures de taille, il est supposé les pointeurs transmis sont des pointeurs vers la structure et doivent être au moins aussi grands que la structure de la demande.

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

Voir aussi

CHttpFilterContext::ServerSupportFunction, CHttpServerContext::TransmitFile

Index