IHttpCachePolicy::AppendVaryByHeader メソッド
ヘッダー値をキャッシュ ポリシーに追加します。
構文
virtual HRESULT AppendVaryByHeader(
PCSTR pszHeader
) = 0;
パラメーター
pszHeader
追加するカスタム ヘッダーを含む null で終わる文字列へのポインター。
\- または -
NULL。
戻り値
HRESULT
。 有効な値を次の表に示しますが、これ以外にもあります。
値 | 説明 |
---|---|
S_OK | が NULL であることを pszHeader 示します。\- または - が pszHeader 変数ヘッダー リストに追加されることを示します。 |
ERROR_NOT_ENOUGH_MEMORY | ヒープ メモリが不足していることを示します。 |
E_FAIL | 操作が失敗したことを示します。 |
解説
要求イベントまたは応答イベントに登録する CHttpModule 派生クラスは、対応するvirtual
メソッドのパラメーターとして IHttpContext ポインターを受け取ります。 カスタム ヘッダーを追加するには、 IHttpContext::GetResponse メソッド、 IHttpResponse::GetCachePolicy メソッド、最後に メソッドを AppendVaryByHeader
呼び出します。
AppendVaryByHeader
動作は実装によって異なります。 ガイドラインとして次の情報を使用する必要がありますが、すべてのシナリオで正しくない場合があります。
IHttpCachePolicy インターフェイスの現在の既定の実装者は、変数ヘッダー データをprivate
含むバッファーを宣言します。 実装者の構築中に、このバッファーは空に初期化されます。 AppendVaryByHeader
が呼び出されるたびに、 AppendVaryByHeader
パラメーターが NULL の場合は、すぐにS_OKがpszHeader
返されます。 それ以外の場合は、バッファーが展開され、 の pszHeader
コピーが保持されます。null 終端文字を含め、バッファーが現在空でない場合は 1 を加えます。 その後、バッファーが空でない場合は、',' 文字がバッファーに追加されます。 最後に、 の pszHeader
内容 (null 終端文字を含む) がバッファーに追加されます。
実装側の注意
に関連付けられているpszHeader
データが への呼び出しpszHeader
後に有効であるとは限らないため、IHttpCachePolicy 実装者は パラメーターをバッファーにコピーする役割をAppendVaryByHeader
担います。
呼び出し元に関する注意事項
IHttpCachePolicy
クライアントは、NULL パラメーターまたは null pszHeader
で終わる文字列を メソッドに渡す役割を AppendVaryByHeader
担います。 実装者は内部バッファーにコピーpszHeader
するためIHttpCachePolicy
、クライアントは のAppendVaryByHeader
呼び出し後に を破棄pszHeader
する責任もあります。
既定 IHttpCachePolicy
の実装者によって使用される内部バッファーは、カスタム ヘッダーのコンマ区切りの文字列です。 したがって、 pszHeader
',' 文字を含めてはなりません。
要件
Type | 説明 |
---|---|
Client | - Windows Vista 上の IIS 7.0 - Windows 7 上の IIS 7.5 - Windows 8 上の IIS 8.0 - Windows 10の IIS 10.0 |
サーバー | - Windows Server 2008 の IIS 7.0 - Windows Server 2008 R2 の IIS 7.5 - Windows Server 2012 の IIS 8.0 - Windows Server 2012 R2 の IIS 8.5 - Windows Server 2016の IIS 10.0 |
製品 | - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0 - IIS Express 7.5、IIS Express 8.0、IIS Express 10.0 |
Header | Httpserv.h |