75 lines
2.4 KiB
C
Executable File
75 lines
2.4 KiB
C
Executable File
/*
|
|
PROCHOOK.H - Copyright (c) 1993 James M. Finnegan, All Rights Reserved
|
|
*/
|
|
|
|
// ProcHook Header. Used by the ProcHook DLL source files, as well
|
|
// as any app using the DLL.
|
|
|
|
#ifndef _INC_PROCHOOK
|
|
#define _INC_PROCHOOK
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" { // No mangling!
|
|
#endif
|
|
|
|
#include <windows.h>
|
|
|
|
// Byte pack structures
|
|
#pragma pack(1)
|
|
|
|
typedef struct tagHOOKCHILD
|
|
{
|
|
WORD wSig; // Signature
|
|
struct tagHOOKCHILD near *prev; // Ptr to previous hook
|
|
struct tagHOOKCHILD near *next; // Ptr to next hook
|
|
VOID near *npHookMaster;// Ptr to master structure
|
|
BYTE cBytes[5]; // Bytes of hooked function
|
|
FARPROC lpfnNewFunc; // Ptr to New function
|
|
}HOOKCHILD;
|
|
|
|
typedef HOOKCHILD *PHOOKCHILD;
|
|
typedef HOOKCHILD NEAR *NPHOOKCHILD;
|
|
typedef HOOKCHILD FAR *LPHOOKCHILD;
|
|
|
|
typedef struct tagHOOKMASTER
|
|
{
|
|
WORD wSig; // Signature
|
|
struct tagHOOKMASTER near *prev; // Ptr to previous master
|
|
struct tagHOOKMASTER near *next; // Ptr to next master
|
|
NPHOOKCHILD head; // Ptr to head of child struct
|
|
NPHOOKCHILD tail; // Ptr to tail of child struct
|
|
BOOL bExclusive; // Exclusive Hook field
|
|
WORD wCount; // Count of # of hooks to this function
|
|
WORD wUnhookCount; // Count of # of unhooks to this function
|
|
WORD wDataSel; // Selector to aliased code selector
|
|
FARPROC lpfnHookedFunction;// Ptr to original function
|
|
}HOOKMASTER;
|
|
|
|
typedef HOOKMASTER *PHOOKMASTER;
|
|
typedef HOOKMASTER NEAR *NPHOOKMASTER;
|
|
typedef HOOKMASTER FAR *LPHOOKMASTER;
|
|
|
|
|
|
NPHOOKCHILD WINAPI SetProcAddress (FARPROC, FARPROC, BOOL);
|
|
BOOL WINAPI SetProcRelease (NPHOOKCHILD);
|
|
BOOL WINAPI ProcHook (NPHOOKCHILD);
|
|
BOOL WINAPI ProcUnhook (NPHOOKCHILD);
|
|
|
|
NPHOOKMASTER WINAPI GetFirstHMaster(LPHOOKMASTER);
|
|
NPHOOKMASTER WINAPI GetNextHMaster (LPHOOKMASTER);
|
|
NPHOOKCHILD WINAPI GetFirstHChild (LPHOOKMASTER, LPHOOKCHILD);
|
|
NPHOOKCHILD WINAPI GetNextHChild (LPHOOKCHILD);
|
|
|
|
WORD WINAPI GetOrdFromAddr (HMODULE, FARPROC);
|
|
LPSTR WINAPI GetNameFromOrd (HMODULE, WORD);
|
|
|
|
|
|
// Set packing back to its default
|
|
#pragma pack()
|
|
|
|
#ifdef __cplusplus
|
|
} // End of extern "C" {
|
|
#endif
|
|
|
|
#endif // _INC_PROCHOOK
|