title | description | ms.date | ms.assetid |
---|---|---|---|
IHttpCacheKey::GetIsEqual Method |
The IHttpCacheKey::GetIsEqual Method returns a value that indicates whether two I H t t p Cache Key pointers are equivalent. |
10/07/2016 |
ac83971b-5092-42c7-d20f-dba89ab5dcad |
Returns a value that indicates whether two IHttpCacheKey pointers are equivalent.
virtual bool GetIsEqual(
IHttpCacheKey* pCacheCompareKey
) const = 0;
pCacheCompareKey
A non-NULL IHttpCacheKey
pointer to compare with the current IHttpCacheKey
.
true
if the current IHttpCacheKey
is equivalent to the pCacheCompareKey
parameter; otherwise, false
.
CGlobalModule derived classes that register for GL_CACHE_OPERATION events receive an ICacheProvider pointer as a parameter on the CGlobalModule::OnGlobalCacheOperationvirtual
method. You can retrieve an IHttpCacheKey
pointer by calling the ICacheProvider::GetCacheKey method on the ICacheProvider
pointer. You can then compare two IHttpCacheKey
pointers by calling the GetIsEqual
method.
The pCacheCompareKey
parameter must not be NULL; otherwise, GetIsEqual
will throw an access violation. In addition, pCacheCompareKey
must be the same extended interface type as the current IHttpCacheKey
pointer. For example, if the current IHttpCacheKey
pointer implements the IFileKey interface, the pCacheCompareKey
parameter must implement IFileKey
, as well.
The GetIsEqual
return value depends on both interface and implementation. You should use the following information as a guideline, but it may not be correct in all scenarios:
-
Classes that implement
IFileKey
returntrue
only if the IFileKey::GetPath method returns equivalent values on both the currentIHttpCacheKey
andpCacheCompareKey
pointers. -
Classes that implement the IHttpTokenKey interface return
true
only if the IHttpTokenKey::GetUserName and IHttpTokenKey::GetLogonMethod methods return equivalent values on both the currentIHttpCacheKey
andpCacheCompareKey
pointers. -
Classes that implement the IUriKey interface return
true
only if the IUriKey::GetSiteId and IUriKey::GetUrl methods return equivalent values on both the currentIHttpCacheKey
andpCacheCompareKey
pointers.
The following code example demonstrates how to create a global module that listens for GL_CACHE_OPERATION
and GL_CACHE_CLEANUP events and then writes the IHttpCacheKey
and the GetIsEqual
information to the Event Viewer. It also demonstrates that if the same IHttpCacheKey
pointer is compared against itself, the GetIsEqual
method will return true
.
Caution
[!INCLUDEiisver] generates a large number of events in the Event Viewer. To avoid a log overflow error in a production environment, you should generally avoid writing cache information to the event log. For demonstration purposes, this code example writes an entry to the Event Viewer in debug mode only.
[!code-cppIHttpCacheKey#4]
The above code writes a new event to the Event Viewer, where the Data box contains a string similar to the following.
IHttpCacheKey::GetIsEqual: true
Your module must export the RegisterModule function. You can export this function by creating a module definition (.def) file for your project, or you can compile the module by using the /EXPORT:RegisterModule
switch. For more information, see Walkthrough: Creating a Request-Level HTTP Module By Using Native Code.
You can optionally compile the code by using the __stdcall (/Gz)
calling convention instead of explicitly declaring the calling convention for each function.
Type | Description |
---|---|
Client | - IIS 7.0 on [!INCLUDEwinvista] - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 |
Server | - IIS 7.0 on [!INCLUDEwinsrv2008] - 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 - [!INCLUDEiisexp75], [!INCLUDEiisexp80], [!INCLUDEiisexp100] |
Header | Httpserv.h |