IHttpCachePolicy::SetVaryByValue 方法

设置缓存策略的变量值。

语法

virtual HRESULT SetVaryByValue(  
   PCSTR pszValue  
) = 0;  

parameters

pszValue
指向以 null 结尾的字符串的指针,该字符串包含要追加的自定义值。

\- 或 -

NULL。

返回值

HRESULT。 可能的值包括(但并不限于)下表中的项。

说明
S_OK 指示操作成功。
E_INVALIDARG 指示 pszValue 为 NULL。
ERROR_ARITHMETIC_OVERFLOW 指示 的 pszValue 长度超过最大限制。

备注

注册请求或响应事件的 CHttpModule 派生类接收 IHttpContext 指针作为相应virtual方法的参数。 若要设置变量值,请调用 IHttpContext::GetResponse 方法、 IHttpResponse::GetCachePolicy 方法,最后 SetVaryByValue 调用 方法。

SetVaryByValue 行为取决于实现。 应将以下信息用作指南,但并非所有情况都正确:

  • IHttpCachePolicy 接口的当前默认实现程序声明包含private变量数据的缓冲区。 在构造实现程序期间,此缓冲区初始化为空。

  • SetVaryByValue 如果 pszValue 参数为 NULL,则立即返回E_INVALIDARG。 否则,如有必要,将扩展内部缓冲区,以保留 的内容 pszValue 和 null 终止字符。 然后 pszValue,将后跟 null 终止字符复制到此缓冲区中。 调用 之前 SetVaryByValue 缓冲区中的任何数据(如有必要)在调用 SetVaryByValue期间将被覆盖。

实现者须知

IHttpCachePolicy 实现者负责将pszValue参数复制到缓冲区中,因为不保证在调用 SetVaryByValue后与pszValue参数关联的数据有效。

对调用者的说明

IHttpCachePolicy 客户端负责将以 null 结尾的字符串传递给 SetVaryByValue 方法。 客户端还负责在调用 后释放 pszValue ,因为IHttpCachePolicy实现者会复制到pszValue内部缓冲区SetVaryByValue中。

要求

类型 说明
客户端 - 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

另请参阅

IHttpCachePolicy 接口