CHttpFilterContext::GetServerVariable

BOOL GetServerVariable( LPTSTR lpszVariableName, LPVOID lpvBuffer, LPDWORD lpdwSize );

返回值:
如果成功,则返回非零值,否则为0。Win32 API 调用GetLastError可被用来确定为何调用失败。可能的错误值包括:
含义
ERROR_INVALID_PARAMETER坏的连接操作
ERROR_INVALID_INDEX坏的或不支持的变量标识符
ERROR_INSUFFICIENT_BUFFER缓冲区太小,在lpdwSize返回所需大小
ERROR_MORE_DATA缓冲区太小,只有部分数据返回。整个的数据大小未返回
ERROR_NO_DATA所请求的数据无效

参数:
lpszVariableName空终止符的字符串,指出哪个变量被请求。请参阅以下说明部分,选择一个可能的名字。所有变量名与定义在位于http://hoohoo.ncsa.uiuc.edu/cgi/env.html的CGI说明中的一样。
lpvBuffer一个指向接收请求信息的缓冲区的指针。
lpdwSize指向DWORD的指针,指出缓冲区中有效的字节数。对于成功结束,DWORD包含传输到缓冲区的字节数(包括空终止符字节)。

说明:
该成员函数被框架调用,拷贝HTTP连接或服务器自身有关的信息到调用者提供的缓冲区中。可能的lpszVariableNames包括:
含义
ALL_HTTP未被文法分析映射成为某个上述变量的HTTP头。
这些变量的形式为HTTP_<头名称>
AUTH_TYPE包含鉴定使用的类型。例如,若Basic鉴定被使用,此字符串将为“Basic”。对于Windows NT Challenge回答,将为“NTLM”。其它鉴定有别的字符串。由于新的鉴定类型可被添加到Internet Server中,故不可能列出所有可能的字符串。如果字符串为空,则未使用鉴定
CONTENT_LENGTH可从客户那里收到的脚本的字节数
CONTENT_TYPE由POST主体提供的信息的内容类型
GATEWAY_INTERFACE服务器所遵守的CGI鉴定的修订本。当前版本是CGI/1.1
HTTP_ACCEPT特殊的HTTP标题。Accept: 字段的值是连接的,用“,”隔开。例如,下面几行为HTTP标题的一部分:
accept: */*;q=0.1
accept: text/html
accept: image/jpeg
然后,HTTP_ACCEPT变量将有一个值:
*/*;q=0.1,text/html,image/jpeg
PATH_INFO附加的路径信息,如由客户指定的。它比较脚本名字之后,查询字符串之前的URL的标头部分(如果有的话)
PATH_TRANSLATED这是PATH_INFO值,但还有扩展到指定的目录的虚路径名
QUERY_STRINGURL中“?”后的参考此脚本的信息
REMOTE_ADDR客户的IP地址
REMOTE_HOST客户的用户名
REMOTE_USER包含由客户提供的和由服务器鉴定的用户名
REQUEST_METHODHTTP请求方法
SCRIPT_NAME正执行的脚本程序名
SERVER_NAME将出现在自参考URL中的服务器的用户名(或IP地址)
SERVER_PORT接收请求的TCP/IP端口
SERVER_PROTOCOL与此请求有关的信息获取协议的名称和版本,通常为HTTP/1.0
SERVER_SOFTWARECGI程序运行的网络服务器的名称和版本