www.pudn.com > API Hook 工具相关代码 apihooktest.rar > HookApiInterFace.h


#ifndef _HOOK_API_INTERFACE_H 
#define _HOOK_API_INTERFACE_H 
 
#pragma comment(lib, "Hook.lib") 
 
struct IHookHelper 
{ 
	virtual void Enter(DWORD dwMineFunAdr) = 0; 
	virtual void Leave(DWORD dwMineFunAdr) = 0; 
	virtual void Log(const char* pContent) = 0; 
	virtual void SetLogFilePath(const char* pLogFile) = 0; 
    virtual const char* GetLogFilePath() = 0; 
}; 
 
extern IHookHelper* g_pHelper; 
 
class CFunHelper 
{ 
public: 
    CFunHelper(LPVOID pMineAdr) 
    { 
        g_pHelper->Enter((DWORD)pMineAdr); 
        m_dwAdr = (DWORD)pMineAdr; 
    } 
    virtual ~CFunHelper() 
    { 
        g_pHelper->Leave(m_dwAdr); 
    } 
     
private: 
    DWORD  m_dwAdr; 
}; 
 
extern "C" __declspec(dllimport) IHookHelper* GetHookHelper(); 
 
typedef void (PASCAL *PSHOWME)(HWND hParent); 
 
typedef struct tagDllInfo 
{ 
    char    szAuthor[100]; 
    char    szEmail[100]; 
    char    szHomePage[255]; 
    char    szIntroduce[2048]; 
    HICON   hIconSign; 
    HBITMAP hBpSign; 
    PSHOWME pCallBack; 
     
    tagDllInfo() 
    { 
        memset(this, 0, sizeof(tagDllInfo)); 
    } 
}DLL_INFO, *LPDLL_INFO; 
 
typedef void (PASCAL *PGETDLLINFO)(DLL_INFO& info); 
 
#endif