设置缓存策略的变量值。
语法
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 |