Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Appends the header value to the cache policy.
Syntax
virtual HRESULT AppendVaryByHeader(
PCSTR pszHeader
) = 0;
Parameters
pszHeader
A pointer to a null-terminated string that contains the custom header to append.
-or-
NULL.
Return Value
An HRESULT. Possible values include, but are not limited to, those in the following table.
| Value | Description |
|---|---|
| S_OK | Indicates that pszHeader is NULL.-or- Indicates that pszHeader is appended to the variable header list. |
| ERROR_NOT_ENOUGH_MEMORY | Indicates that heap memory is exhausted. |
| E_FAIL | Indicates that the operation failed. |
Remarks
CHttpModule derived classes that register for request or response events receive an IHttpContext pointer as a parameter on the corresponding virtual method. To append a custom header, call the IHttpContext::GetResponse method, the IHttpResponse::GetCachePolicy method, and finally the AppendVaryByHeader method.
AppendVaryByHeader behavior depends on implementation. You should use the following information as a guideline, but it may not be correct in all scenarios:
The current default implementer of the IHttpCachePolicy interface declares a private buffer that contains variable header data. During the construction of an implementer, this buffer is initialized to empty. Every time AppendVaryByHeader is called, AppendVaryByHeader immediately returns S_OK if the pszHeader parameter is NULL. Otherwise, the buffer is expanded to hold a copy of pszHeader, including the null-termination character, plus 1 if the buffer is not currently empty. Then, if the buffer is not empty, the ',' character is appended to the buffer. Finally, the contents of pszHeader, including the null-termination character, are appended to the buffer.
Notes for Implementers
IHttpCachePolicy implementers are responsible for copying the pszHeader parameter into a buffer, because the data associated with pszHeader is not guaranteed to be valid after the call to AppendVaryByHeader.
Notes for Callers
IHttpCachePolicy clients are responsible for passing either a NULL pszHeader parameter or a null-terminated string to the AppendVaryByHeader method. Clients are also responsible for disposing of pszHeader after the call to AppendVaryByHeader, because IHttpCachePolicy implementers copy pszHeader into an internal buffer.
The internal buffer used by the default IHttpCachePolicy implementer is a comma-delimited string of custom headers. Therefore, pszHeader must not include the ',' character.
Requirements
| Type | Description |
|---|---|
| Client | - IIS 7.0 on Windows Vista - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 |
| Server | - IIS 7.0 on Windows Server 2008 - IIS 7.5 on Windows Server 2008 R2 - IIS 8.0 on Windows Server 2012 - IIS 8.5 on Windows Server 2012 R2 - IIS 10.0 on Windows Server 2016 |
| Product | - 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 |