home *** CD-ROM | disk | FTP | other *** search
/ Windows Graphics Programming / Feng_Yuan_Win32_GDI_DirectX.iso / Samples / include / ImageModule.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-11  |  2.4 KB  |  63 lines

  1. #pragma once
  2.  
  3. //-----------------------------------------------------------------------------------//
  4. //              Windows Graphics Programming: Win32 GDI and DirectDraw               //
  5. //                             ISBN  0-13-086985-6                                   //
  6. //                                                                                   //
  7. //  Written            by  Yuan, Feng                             www.fengyuan.com   //
  8. //  Copyright (c) 2000 by  Hewlett-Packard Company                www.hp.com         //
  9. //  Published          by  Prentice Hall PTR, Prentice-Hall, Inc. www.phptr.com      //
  10. //                                                                                   //
  11. //  FileName   : imagemodule.h                                                         //
  12. //  Description: Using ImageHlp API for debug symbol querying                        //
  13. //  Version    : 1.00.000, May 31, 2000                                              //
  14. //-----------------------------------------------------------------------------------//
  15.  
  16. // Debug symbol handling for a single module
  17. class KImageModule  
  18. {
  19.     HANDLE                   m_hProcess;   
  20.     
  21.     bool                     m_bLoaded;
  22.     DWORD                     m_imagebase_default; // default image base address in DLL/SYS
  23.     DWORD                     m_imagebase_loaded;  // actual loaded image base
  24.     DWORD                     m_symbolbase;          // base address for loaded symbol    
  25.  
  26.     TCHAR                     m_modulename[64];
  27.  
  28.     IMAGEHLP_SYMBOL          m_is[10];    // leave enough space for the name
  29.     HWND                     m_hOutput;
  30.     LOADED_IMAGE             m_image;
  31.  
  32.     bool                     m_bDecoratedNames;
  33.     bool                     m_bShowFPO;
  34.     int                         m_nCount;
  35.     bool                     m_bForPogy;    // Chapter 4: APY Spy
  36.  
  37. public:
  38.     KImageModule(HWND hOutput);
  39.     virtual ~KImageModule();
  40.  
  41.     bool  Load(char * filename, char * sympath);
  42.     void  Unload(void);
  43.  
  44.     const IMAGEHLP_SYMBOL * ImageGetSymbol(const char * name);
  45.     bool  LoadSystemModule(char * module, char * extension);
  46.     
  47.     BOOL  EnumSymbolsCallback(LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize) ;
  48.  
  49.     void  ShowFPO(ULONG SymbolAddress);
  50.     void  TranslateName(LPSTR SymbolName);
  51.  
  52.     const unsigned char * GetImagePointer(unsigned symbva);
  53.     const unsigned char * Address2ImagePointer(unsigned addr);
  54.  
  55.     void  EnumerateSymbols(bool bForPogy);
  56.     void  ShowSysCallTable(const char * tablename, unsigned base);
  57.  
  58.     void  va_Output(const char * format, va_list argptr);
  59.     void  Output(const char * format, ...);
  60.  
  61. };
  62.  
  63.