Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

236 lines
4.5 KiB

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
urlcache.h
Abstract:
Contains the Internet Cache mangemant data types and APIs definitions.
Author:
Madan Appiah (madana) 26-Apr-1995
Environment:
User Mode - Win32
Revision History:
--*/
#ifndef _CACHEAPI_
#define _CACHEAPI_
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(_URLCACHEAPI_)
#define URLCACHEAPI DECLSPEC_IMPORT
#else
#define URLCACHEAPI
#endif
//
// datatype definitions.
//
//
// cache entry type flags.
//
#define NORMAL_CACHE_ENTRY 0x00000001
#define STABLE_CACHE_ENTRY 0x00000002
#define STICKY_CACHE_ENTRY 0x00000004
#define UNCOMMITTED_CACHE_ENTRY 0x00010000
#define OCX_CACHE_ENTRY 0x00020000
typedef struct _CACHE_ENTRY_INFO% {
TCHAR% LocalFileName[MAX_PATH];
DWORD CacheEntryType;
DWORD dwUseCount; // current users count of the cache entry.
DWORD dwHitRate; // num of times the cache entry was retrieved.
DWORD dwSizeLow;
DWORD dwSizeHigh;
FILETIME LastModifiedTime;
FILETIME ExpireTime;
FILETIME LastAccessTime;
DWORD dwReserved;
CHAR SourceURLName[ANYSIZE_ARRAY];
} CACHE_ENTRY_INFO%, *LPCACHE_ENTRY_INFO%;
typedef struct _CACHE_CONFIG_PATH_ENTRY% {
TCHAR% CachePath[MAX_PATH];
DWORD dwCacheSize; // in KBytes
} CACHE_CONFIG_PATH_ENTRY%, *LPCACHE_CONFIG_PATH_ENTRY%;
typedef struct _CACHE_CONFIG_INFO% {
DWORD dwFreshnessInterval;
DWORD dwCleanupInterval;
DWORD dwCleanupFactor;
DWORD dwTimeToCleanup;
BOOL PersistentCache;
DWORD dwNumCachePaths;
CACHE_CONFIG_PATH_ENTRY% CachePaths[ANYSIZE_ARRAY];
} CACHE_CONFIG_INFO%, *LPCACHE_CONFIG_INFO%;
//
// Cache APIs
//
URLCACHEAPI
BOOL
WINAPI
CreateUrlCacheEntry%(
IN LPCSTR lpszUrlName,
IN DWORD dwExpectedFileSize,
OUT LPTSTR% lpszFileName,
IN DWORD dwReserved
);
URLCACHEAPI
BOOL
WINAPI
CommitUrlCacheEntry%(
IN LPCSTR lpszUrlName,
IN LPCTSTR% lpszLocalFileName,
IN FILETIME ExpireTime,
IN FILETIME LastModifiedTime,
IN DWORD CacheEntryType,
IN DWORD dwHeaders,
IN DWORD dwReserved
);
URLCACHEAPI
BOOL
WINAPI
RetrieveUrlCacheEntry%(
IN LPCSTR lpszUrlName,
OUT LPCTSTR% lpszLocalFileName,
OUT FILETIME *lpLastModifiedTime OPTIONAL,
OUT BOOL *lpIsExpired,
OUT DWORD *lpdwHeaders OPTIONAL,
IN DWORD dwReserved
);
URLCACHEAPI
BOOL
WINAPI
UnlockUrlCacheEntry(
IN LPCSTR lpszUrlName,
IN DWORD dwReserved
);
URLCACHEAPI
BOOL
WINAPI
UrlCacheValidate(
IN DWORD dwReserved
);
URLCACHEAPI
BOOL
WINAPI
GetUrlCacheEntryInfo%(
IN LPCSTR lpszUrlName,
OUT LPCACHE_ENTRY_INFO% lpCacheEntryInfo,
IN OUT LPDWORD lpdwCacheEntryInfoBufferSize
);
#define CACHE_ENTRY_ATTRIBUTE_FC 0x00000004
#define CACHE_ENTRY_HITRATE_FC 0x00000010
#define CACHE_ENTRY_MODTIME_FC 0x00000040
#define CACHE_ENTRY_EXPTIME_FC 0x00000080
#define CACHE_ENTRY_ACCTIME_FC 0x00000100
URLCACHEAPI
BOOL
WINAPI
SetUrlCacheEntryInfo%(
IN LPCSTR lpszUrlName,
IN LPCACHE_ENTRY_INFO% lpCacheEntryInfo,
IN DWORD dwFieldControl
);
URLCACHEAPI
BOOL
WINAPI
DeleteUrlCacheEntry(
IN LPCSTR lpszUrlName
);
URLCACHEAPI
HANDLE
WINAPI
FindFirstUrlCacheEntry%(
IN LPCSTR lpszUrlSearchPattern,
OUT LPCACHE_ENTRY_INFO% lpFirstCacheEntryInfo,
IN OUT LPDWORD lpdwFirstCacheEntryInfoBufferSize
);
URLCACHEAPI
BOOL
WINAPI
FindNextUrlCacheEntry%(
IN HANDLE hEnumHandle,
OUT LPCACHE_ENTRY_INFO% lpNextCacheEntryInfo,
IN OUT LPDWORD lpdwNextCacheEntryInfoBufferSize
);
URLCACHEAPI
BOOL
WINAPI
FindCloseUrlCache(
IN HANDLE hEnumHandle
);
URLCACHEAPI
BOOL
WINAPI
FreeUrlCacheSpace%(
IN LPCTSTR% lpszCachePath,
IN DWORD dwSize,
IN DWORD dwSizeType
);
//
// config APIs.
//
#define CACHE_CONFIG_FRESHNESS_INTERVAL_FC 0x00000001
#define CACHE_CONFIG_CLEANUP_INTERVAL_FC 0x00000002
#define CACHE_CONFIG_CLEANUP_FACTOR_FC 0x00000004
#define CACHE_CONFIG_CLEANUP_TIME_FC 0x00000008
#define CACHE_CONFIG_PERSISTENT_CACHE_FC 0x00000010
#define CACHE_CONFIG_FORCE_CLEANUP_FC 0x00000020
#define CACHE_CONFIG_DISK_CACHE_PATHS_FC 0x00000040
URLCACHEAPI
BOOL
WINAPI
GetUrlCacheConfigInfo%(
LPCACHE_CONFIG_INFO% lpCacheConfigInfo,
IN OUT LPDWORD lpdwCacheConfigInfoBufferSize,
DWORD dwFieldControl
);
URLCACHEAPI
BOOL
WINAPI
SetUrlCacheConfigInfo%(
LPCACHE_CONFIG_INFO% lpCacheConfigInfo,
DWORD dwFieldControl
);
#ifdef __cplusplus
}
#endif
#endif // _CACHEAPI_