//+------------------------------------------------------------------------ // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1996 - 2001 // // File: cache.hxx // // Contents: Class Store Binding cache // // Author: AdamEd // //------------------------------------------------------------------------- class CBinding : public BindingsType, public CListItem { public: CBinding( CServerContext* pServerContext, WCHAR* wszClassStorePath, PSID pSid, IClassAccess* pClassAccess, HRESULT hrBind, HRESULT* phr); ~CBinding(); BOOL Compare( CServerContext* pServerContext, WCHAR* wszClassStorePath, PSID pSid); BOOL IsExpired( FILETIME* pFileTime ); }; class CBindingList : public CList { public: CBindingList(); ~CBindingList(); void Lock(); void Unlock(); CBinding* Find( CServerContext* pServerContext, FILETIME* pCurrentTime, WCHAR* wszClassStorePath, PSID pSid); CBinding* AddBinding( FILETIME* pCurrentTime, CBinding* pBinding); private: void Delete( CBinding* pBinding ); CRITICAL_SECTION _ListLock; DWORD _cBindings; };