/******************************Module*Header*******************************\ * Module Name: local.h * * * * Definitions needed for client side objects and attribute caching. * * * * Modified: 3-Aug-1992 22:35:30 by Gerrit van Wingerden [gerritv] * * Added client side transform support. * * * * Created: 30-May-1991 21:55:01 * * Author: Charles Whitmer [chuckwh] * * * * Copyright (c) 1993 Microsoft Corporation * \**************************************************************************/ /**************************************************************************\ * * Local handle macros * \**************************************************************************/ // Handle uniqueness is nice to check but an unnecesary performance cost in // a free build. // To match the uniqness field: If the handle uniqness == 0, let it through // anyway. This is a method for WOW to only keep track of the low 16 bits but // still get reasonable performance. Even if a 32 bit app does this, all it // can do is hose it self, not the system or another app. #define INDEX_MASK 0xFFFF #define UNIQ_SHIFT 16 #define UNIQ_MASK 0xFFFF #define HIPART(x) *(((USHORT *) &(x))+1) #define MATCHUNIQ(plhe,h) ((USHORT) plhe->iUniq == HIPART(h)) #define MASKINDEX(h) ((UINT)h & INDEX_MASK) #define LHANDLE(i) (i+((ULONG)pLocalTable[i].iUniq<