QueryInfo这个函数在网上找的资料,看了之后感觉都很抽象,他的作用是什么呢?

解决方案 »

  1.   

    CHttpFile::QueryInfo
      BOOL QueryInfo( DWORD dwInfoLevel, LPVOID lpvBuffer, LPDWORD lpdwBufferLength, LPDWORD lpdwIndex = NULL ) const;
      BOOL QueryInfo( DWORD dwInfoLevel, CString& str, LPDWORD dwIndex = NULL) const;
      BOOL QueryInfo( DWORD dwInfoLevel, SYSTEMTIME* pSysTime, LPDWORD dwIndex = NULL ) const;
      返回值:
      如果成功,则返回非零值,否则为0。如果此调用失败,可通过调用Win32的函数GetLastError来确定错误原因。
      参数: dwInfoLevel 查询属性和下列指定所须信息标志的组合: · HTTP_QUERY_CUSTOM 查找头名称并在输出中返回lpvBuffer中的值。如果未找到,HTTP_QUERY_CUSTOM 产生断言。 
      · HTTP_QUERY_FLAG_REQUEST_HEADERS 是典型的,此应用查询请求头,但一个应用也可通过使用此标记查询请求头。 
      · HTTP_QUERY_FLAG_SYSTEMTIME 对于那些值为日期/时间字符串的头,如“Last-Modified-Time”,此标记返回如标准Win32SYSTEMTIME结构的头值,而不需应用对数据进行文法分析映射。如果使用了此标记,你可能要使用SYSTEMTIME 覆盖此函数。 
      · HTTP_QUERY_FLAG_NUMBER 对于那些值为数字的头,如状态号,此标记返回一个32位的数据。 
      请参阅说明部分以了解可能值的列表。 
      lpvBuffer 一个指向用于接收信息的缓冲区的指针。 
      lpdwBufferLength 在入口处,这是指向一个用字节或位表示的包含数据缓冲区长度的值。请参阅说明部分以了解此参数的详细信息。 
      lpdwIndex 一个指向基于零的头索引的指针。可以为NULL。使用此标记来枚举同名的多个头。对于输入,lpdwIndex表示返回的指定的头的索引。对于输出,lpdwIndex 表示下一个头的索引。如果此索引找不到,则返回ERROR_HTTP_HEADER_NOT_FOUND。 
      str 接收返回信息的CString对象的参考值。 
      dwIndex 一个索引值。请参阅lpdwIndex。 
      pSysTime 一个指向Win32 SYSTEMTIME结构的指针。 
      说明:
      调用此成员函数返回HTTP请求中的回答或请求头。只有在SendRequest被成功调用或者一个CHttpFile对象被 OpenURL成功创建后,才能使用该成员函数。
      你可从QueryInfo中获取以下数据类型: · strings (缺省) 
      · SYSTEMTIME (对于“Data:”“Expires:”等) 
      · DWORD (对于 STATUS_CODE,CONTENT_LENGTH等等) 
      当一个字符串被写入缓冲区,且成员函数成功时,lpdwBufferLength 包含字符串的字节长减一,去掉结束NULL字符的长度。
      可能的dwInfoLevel值包括: · HTTP_QUERY_MIME_VERSION 
      · HTTP_QUERY_CONTENT_TYPE 
      · HTTP_QUERY_CONTENT_TRANSFER_ENCODING 
      · HTTP_QUERY_CONTENT_ID 
      · HTTP_QUERY_CONTENT_DESCRIPTION 
      · HTTP_QUERY_CONTENT_LENGTH 
      · HTTP_QUERY_ALLOWED_METHODS 
      · HTTP_QUERY_PUBLIC_METHODS 
      · HTTP_QUERY_DATE 
      · HTTP_QUERY_EXPIRES 
      · HTTP_QUERY_LAST_MODIFIED 
      · HTTP_QUERY_MESSAGE_ID 
      · HTTP_QUERY_URI 
      · HTTP_QUERY_DERIVED_FROM 
      · HTTP_QUERY_LANGUAGE 
      · HTTP_QUERY_COST 
      · HTTP_QUERY_WWW_LINK 
      · HTTP_QUERY_PRAGMA 
      · HTTP_QUERY_VERSION 
      · HTTP_QUERY_STATUS_CODE 
      · HTTP_QUERY_STATUS_TEXT 
      · HTTP_QUERY_RAW_HEADERS 
      · HTTP_QUERY_RAW_HEADERS_CRLF