将查询值追加到缓存策略。
语法
virtual HRESULT AppendVaryByQueryString(
PCSTR pszParam
) = 0;
parameters
pszParam
指向以 null 结尾的字符串的指针,该字符串包含要追加的自定义查询字符串。
\- 或 -
NULL。
返回值
HRESULT
。 可能的值包括(但并不限于)下表中的项。
值 | 说明 |
---|---|
S_OK | 指示 pszParam 为 NULL。\- 或 - 指示 pszParam 追加到查询列表的 。 |
ERROR_NOT_ENOUGH_MEMORY | 指示堆内存已用尽。 |
E_FAIL | 指示操作失败。 |
备注
注册请求或响应事件的 CHttpModule 派生类接收 IHttpContext 指针作为相应virtual
方法的参数。 若要追加自定义查询,请调用 IHttpContext::GetResponse 方法、 IHttpResponse::GetCachePolicy 方法,最后 AppendVaryByQueryString
调用 方法。
AppendVaryByQueryString
行为取决于实现。 应将以下信息用作指南,但并非所有方案都正确:
IHttpCachePolicy 接口的当前默认实现程序声明一个private
包含变量标头数据的缓冲区。 在构造实现程序期间,此缓冲区初始化为空。 每次AppendVaryByQueryString
调用 时,如果 pszParam
参数为 NULL,AppendVaryByQueryString
则立即返回S_OK。 否则,将展开缓冲区以保存 pszParam
的副本,包括 null 终止字符,如果缓冲区当前不为空,则加 1。 然后,如果缓冲区不为空,则会将“,”字符追加到缓冲区。 最后,将 的内容 pszParam
(包括 null 终止字符)追加到缓冲区。
实现者须知
IHttpCachePolicy 实现者负责将 pszParam
参数复制到缓冲区,因为与 pszParam
关联的数据在调用 AppendVaryByQueryString
后不保证有效。
对调用者的说明
IHttpCachePolicy
客户端负责将 NULL pszParam
参数或以 null 结尾的字符串传递给 AppendVaryByHeader
方法。 客户端还负责在调用 AppendVaryByHeader
后释放 ,pszParam
因为IHttpCachePolicy
实现者会复制到pszParam
内部缓冲区。
默认 IHttpCachePolicy
实现者使用的内部缓冲区是逗号分隔的自定义标头字符串。 因此, pszParam
不得包含“,”字符。
要求
类型 | 说明 |
---|---|
客户端 | - 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 |