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