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.

60 lines
1.7 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1999 - 2000
  6. //
  7. // File: moduleinfocache.h
  8. //
  9. //--------------------------------------------------------------------------
  10. // ModuleInfoCache.h: interface for the CModuleInfoCache class.
  11. //
  12. //////////////////////////////////////////////////////////////////////
  13. #if !defined(AFX_MODULEINFOCACHE_H__2D4FCE63_C369_11D2_842B_0010A4F1B732__INCLUDED_)
  14. #define AFX_MODULEINFOCACHE_H__2D4FCE63_C369_11D2_842B_0010A4F1B732__INCLUDED_
  15. #if _MSC_VER > 1000
  16. #pragma once
  17. #endif // _MSC_VER > 1000
  18. #ifndef NO_STRICT
  19. #ifndef STRICT
  20. #define STRICT 1
  21. #endif
  22. #endif /* NO_STRICT */
  23. #include <windows.h>
  24. // Forward declarations
  25. class CModuleInfo;
  26. class CModuleInfoNode;
  27. class CSymbolVerification;
  28. class CModuleInfoCache
  29. {
  30. public:
  31. CModuleInfoCache();
  32. virtual ~CModuleInfoCache();
  33. bool Initialize(CSymbolVerification * lpSymbolVerification);
  34. CModuleInfo * AddNewModuleInfoObject(LPTSTR tszModulePath, bool * pfNew);
  35. bool VerifySymbols(bool fQuietMode);
  36. inline DWORD GetNumberOfModulesInCache() { return m_iModulesInCache; };
  37. inline long GetNumberOfVerifyErrors() { return m_iNumberOfErrors; };
  38. inline long GetNumberOfModulesVerified() { return m_iTotalNumberOfModulesVerified; };
  39. protected:
  40. HANDLE m_hModuleInfoCacheMutex;
  41. long m_iModulesInCache;
  42. long m_iTotalNumberOfModulesVerified;
  43. CModuleInfoNode * m_lpModuleInfoNodeHead;
  44. CSymbolVerification * m_lpSymbolVerification;
  45. long m_iNumberOfErrors; // Used to return error level...
  46. CModuleInfo * SearchForModuleInfoObject(LPTSTR tszModulePath);
  47. };
  48. #endif // !defined(AFX_MODULEINFOCACHE_H__2D4FCE63_C369_11D2_842B_0010A4F1B732__INCLUDED_)