Source code of Windows XP (NT5)
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.
|
|
//
// Local private header file
#ifndef _LOCAL_H_
#define _LOCAL_H_
#include "priv.h"
#define CONST_VTABLE
// Max urlcache entry we will deal with.
//#define MAX_URLCACHE_ENTRY 4096
#define MAX_URLCACHE_ENTRY MAX_CACHE_ENTRY_INFO_SIZE // from wininet.h
// PIDL format for cache folder...
typedef struct { USHORT cb; USHORT usSign; } BASEPIDL; typedef UNALIGNED BASEPIDL *LPBASEPIDL;
// If TITLE, etc in LPHEIPIDL is good, vs we have to QueryUrl for it
#define HISTPIDL_VALIDINFO (0x1)
// PIDL format for history leaf folder...
typedef struct { USHORT cb; USHORT usSign; USHORT usUrl; USHORT usFlags; USHORT usTitle; FILETIME ftModified; FILETIME ftLastVisited; DWORD dwNumHits; __int64 llPriority; } HEIPIDL; typedef UNALIGNED HEIPIDL *LPHEIPIDL;
// PIDL format for history non leaf items...
typedef struct { USHORT cb; USHORT usSign; TCHAR szID[MAX_PATH]; } HIDPIDL; typedef UNALIGNED HIDPIDL *LPHIDPIDL;
// PIDL format for "views"
typedef struct { USHORT cb; USHORT usSign; USHORT usViewType; USHORT usExtra; // reserved for later use.
} VIEWPIDL; typedef UNALIGNED VIEWPIDL *LPVIEWPIDL;
typedef struct /* : VIEWPIDL*/ { // histpidl
USHORT cb; USHORT usSign; /* must be == VIEWPIDL_SEARCH */ // viewpidl
USHORT usViewType; USHORT usExtra; // viewpidl_search
FILETIME ftSearchKey; } SEARCHVIEWPIDL; typedef UNALIGNED SEARCHVIEWPIDL *LPSEARCHVIEWPIDL;
// VIEWPIDL types
#define VIEWPIDL_ORDER_SITE 1//0x2
#define VIEWPIDL_ORDER_FREQ 2//0x3
#define VIEWPIDL_ORDER_TODAY 3//0x1
#define VIEWPIDL_ORDER_MAX 3 // highest VIEWPIDL
// Search View > VIEWPIDL_ORDER_MAX because its
// not enumerated with the rest of the views
// (esentially its not a "view" to the caller,
// but this is how its implemented under the hood)
#define VIEWPIDL_SEARCH 0x4C44
// FILETIME secticks
#define FILE_SEC_TICKS (10000000)
// SECS PER DAY
#define DAY_SECS (24*60*60)
// Due hack used in shdocvw for recognizing LOCATION pidl, make sure neither byte
// has 4's and 1's bit set (ie 0x50 & value == 0 for both bytes)
#define CEIPIDL_SIGN 0x6360 //cP
#define IDIPIDL_SIGN 0x6369 //ci interval id
#define IDTPIDL_SIGN 0x6364 //cd interval id (TODAY)
#define IDDPIDL_SIGN 0x6365 //ce domain id
#define HEIPIDL_SIGN 0x6368 //ch history leaf pidl
#define VIEWPIDL_SIGN 0x6366 /*mm: this is a "history view" pidl to allow
multiple 'views' on the history */ #define FSWPIDL_SIGN 0x6367
#define VALID_IDSIGN(usSign) ((usSign) == IDIPIDL_SIGN || (usSign) == IDTPIDL_SIGN || (usSign) == IDDPIDL_SIGN)
#define EQUIV_IDSIGN(usSign1,usSign2) ((usSign1)==(usSign2)|| \
((usSign1)==IDIPIDL_SIGN && (usSign2)==IDTPIDL_SIGN)|| \ ((usSign2)==IDIPIDL_SIGN && (usSign1)==IDTPIDL_SIGN))
#define IS_VALID_VIEWPIDL(pidl) ( (((LPBASEPIDL)pidl)->cb >= sizeof(VIEWPIDL)) && \
(((LPBASEPIDL)pidl)->usSign == (USHORT)VIEWPIDL_SIGN) ) #define IS_EQUAL_VIEWPIDL(pidl1,pidl2) ((IS_VALID_VIEWPIDL(pidl1)) && (IS_VALID_VIEWPIDL(pidl2)) && \
(((LPVIEWPIDL)pidl1)->usViewType == ((LPVIEWPIDL)pidl2)->usViewType) && \ (((LPVIEWPIDL)pidl1)->usExtra == ((LPVIEWPIDL)pidl2)->usExtra)) #define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
#define _ILSkip(pidl, cb) ((LPITEMIDLIST)(((BYTE*)(pidl))+cb))
#define _ILNext(pidl) _ILSkip(pidl, (pidl)->mkid.cb)
#ifdef __cplusplus
extern "C" { #endif
// Abandon mutex after 2 minutes of waiting
#define FAILSAFE_TIMEOUT (120000)
extern HANDLE g_hMutexHistory; extern const CHAR c_szOpen[]; extern const CHAR c_szDelcache[]; extern const CHAR c_szProperties[]; extern const CHAR c_szCopy[]; extern const TCHAR c_szHistPrefix[];
#ifdef __cplusplus
}; #endif
typedef enum { FOLDER_TYPE_Hist = 1, FOLDER_TYPE_HistInterval, FOLDER_TYPE_HistDomain, FOLDER_TYPE_HistItem } FOLDER_TYPE;
#define IsLeaf(x) (x == FOLDER_TYPE_HistDomain)
#define IsHistoryFolder(x) (x==FOLDER_TYPE_Hist||x==FOLDER_TYPE_HistInterval||x==FOLDER_TYPE_HistDomain)
//IE64 compatible pointer difference
#define PtrDifference(x,y) ((LPBYTE)(x)-(LPBYTE)(y))
//BOOL DeleteUrlCacheEntry(LPCSTR lpszUrlName);
#include "hsfutils.h" // NOTE: must come at end to get all the definitions
#endif // _LOCAL_H_
|