Collapse the table of content
Expand the table of content

FindFirstUrlCacheEntry function

Begins the enumeration of the Internet cache.


HANDLE FindFirstUrlCacheEntry(
  _In_    LPCTSTR                     lpszUrlSearchPattern,
  _Out_   LPINTERNET_CACHE_ENTRY_INFO lpFirstCacheEntryInfo,
  _Inout_ LPDWORD                     lpcbCacheEntryInfo


lpszUrlSearchPattern [in]

A pointer to a string that contains the source name pattern to search for. This parameter can only be set to "cookie:", "visited:", or NULL. Set this parameter to "cookie:" to enumerate the cookies or "visited:" to enumerate the URL History entries in the cache. If this parameter is NULL, FindFirstUrlCacheEntry returns all content entries in the cache.

lpFirstCacheEntryInfo [out]

Pointer to an INTERNET_CACHE_ENTRY_INFO structure.

lpcbCacheEntryInfo [in, out]

Pointer to a variable that specifies the size of the lpFirstCacheEntryInfo buffer, in bytes. When the function returns, the variable contains the number of bytes copied to the buffer, or the required size needed to retrieve the cache entry, in bytes.

Return value

Returns a handle that the application can use in the FindNextUrlCacheEntry function to retrieve subsequent entries in the cache. If the function fails, the return value is NULL. To get extended error information, call GetLastError.

ERROR_INSUFFICIENT_BUFFER indicates that the size of lpFirstCacheEntryInfo as specified by lpdwFirstCacheEntryInfoBufferSize is not sufficient to contain all the information. The value returned in lpdwFirstCacheEntryInfoBufferSize indicates the buffer size necessary to contain all the information.


The handle returned from FindFirstUrlCacheEntry is used in all subsequent calls to FindNextUrlCacheEntry. At the end of the enumeration, the application should call FindCloseUrlCache.

FindFirstUrlCacheEntry and FindNextUrlCacheEntry return variable size information. If ERROR_INSUFFICIENT_BUFFER is returned, the application should allocate a buffer of the size specified by lpdwFirstCacheEntryInfoBufferSize. For more information, see Using Buffers.

Like all other aspects of the WinINet API, this function cannot be safely called from within DllMain or the constructors and destructors of global objects.

Note  WinINet does not support server implementations. In addition, it should not be used from a service. For server implementations or services use Microsoft Windows HTTP Services (WinHTTP).


Minimum supported client

Windows 2000 Professional

Minimum supported server

Windows 2000 Server







Unicode and ANSI names

FindFirstUrlCacheEntryW (Unicode) and FindFirstUrlCacheEntryA (ANSI)

See also

WinINet Functions



© 2015 Microsoft