CHttpFile::QueryInfo
更新 : 2007 年 11 月
HTTP 要求からの応答ヘッダーまたは要求ヘッダーを返します。
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;
パラメータ
dwInfoLevel
問い合わせの属性と、要求された情報の種別を指定する以下のフラグの組み合わせです。HTTP_QUERY_CUSTOM ヘッダー名を検索し、この値を出力として lpvBuffer へ返します。ヘッダーが見つからない場合、HTTP_QUERY_CUSTOM はアサートします。
HTTP_QUERY_FLAG_REQUEST_HEADERS 通常、アプリケーションは応答ヘッダーを問い合わせます。このフラグを使うことによって、アプリケーションは要求ヘッダーを問い合わせることもできます。
HTTP_QUERY_FLAG_SYSTEMTIME "Last-Modified-Time" などの日付/時刻文字列の値を持つヘッダーの場合、このフラグは、ヘッダーの値を Win32 の標準 SYSTEMTIME 構造体として返します。この場合、アプリケーションでデータを解析する必要はありません。このフラグを使用するときは、SYSTEMTIME を使用するように関数をオーバーライドすると便利です。
HTTP_QUERY_FLAG_NUMBER ステータス コードなどのように値が数値のヘッダーの場合、このフラグは、32 ビットの数値としてデータを返します。
使用できる値の一覧については、「解説」を参照してください。
lpvBuffer
情報を受け取るバッファへのポインタ。lpdwBufferLength
呼び出し時には、文字数またはバイト数でデータ バッファの長さが入っている値へのポインタ。このパラメータの詳細については、「解説」を参照してください。lpdwIndex
0 から始まるヘッダー インデックスへのポインタ。NULL の場合もあります。同一名の複数のヘッダーを列挙するために使用します。入力時の lpdwIndex は、返されるヘッダーのインデックスを示します。出力時の lpdwIndex は、次のヘッダーのインデックスを示します。次のインデックスが見つからない場合、ERROR_HTTP_HEADER_NOT_FOUND が返されます。str
返される情報を受け取る CString オブジェクトへの参照。dwIndex
インデックス。lpdwIndex を参照してください。pSysTime
Win32 の SYSTEMTIME 構造体へのポインタ。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。呼び出しに失敗した場合は、Win32 の関数 GetLastError を呼び出してエラーの原因を調査できます。
解説
SendRequest の呼び出しに成功した場合、または OpenURL による CHttpFile オブジェクトの作成に成功した場合だけ、このメンバ関数を使用してください。
QueryInfo では、以下の種類のデータを取得できます。
文字列 (既定)
SYSTEMTIME ("Data:" "Expires:" などのヘッダーの場合)
DWORD (STATUS_CODE、CONTENT_LENGTH などの場合)
文字列がバッファへ書き込まれ、メンバ関数の呼び出しが成功した場合、lpdwBufferLength には文字列の長さとして、文字数 -1 が入ります。-1 は終端の 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
必要条件
ヘッダー : afxinet.h