|
|
1.1 ! root 1: #include <selector.h> ! 2: ! 3: /* Maximum HWNDS, we will watch */ ! 4: #define MAXHWNDS 100 ! 5: #define MAXMSGCNT 50 /* size of Message queue */ ! 6: #define MAXSTRACE 5 /* Max number of levels we will traceback */ ! 7: #define CALLSTOSKIP 3 /* How many levels of calls to skip */ ! 8: ! 9: /* ! 10: * Define message structure for spy to hold ! 11: */ ! 12: typedef struct _QMSGSPY { ! 13: USHORT fs; /* Flags */ ! 14: QMSG qmsg; /* The message */ ! 15: SHORT cbDataMP1; /* Num extra bytes of information for MP1 */ ! 16: SHORT cbDataMP2; /* Num extra bytes of information for MP2 */ ! 17: PID pidSend; /* Process ID of the sender */ ! 18: TID tidSend; /* Thread ID of the sender */ ! 19: PVOID pvoidStack[MAXSTRACE]; /* Stack trace for send messages */ ! 20: UCHAR *rgData; /* Pointer to additional information for message */ ! 21: UCHAR bMPType; /* Type of message information retrieved */ ! 22: } QMSGSPY; ! 23: ! 24: typedef QMSGSPY FAR *PQMSGSPY; ! 25: ! 26: ! 27: /* Define the HOOKS options word bits */ ! 28: #define SPYH_INPUT 0x0001 ! 29: #define SPYH_SENDMSG 0x0002 ! 30: #define SPYH_JOURNALR 0x0004 ! 31: ! 32: /* ! 33: * Define the types of data that the hook will return for message types ! 34: * Note: We have a max of 8 types each for MP1 and MP2 and that currently ! 35: * can be defined with a Byte for each message ! 36: */ ! 37: #define MPT_NORMAL 0x00 ! 38: #define MPT_SWP 0x01 ! 39: #define MPT_RECTL 0x02 ! 40: #define MPT_WNDPRMS 0x03 ! 41: #define MPT_QMSG 0x04 ! 42: #define MP_ENABLED 0x80 ! 43: ! 44: #define MP_MASK 0x07 ! 45: ! 46: #define MPTS(mp1,mp2) ((UCHAR)mp2 << 3 | (UCHAR)mp1) ! 47: ! 48: #define MAXMSGFILTER 0x0300 /* User message */ ! 49: #define MAXMSGFILTERBYTES 0x0300 ! 50: ! 51: /* SPYHOOK library API functions */ ! 52: BOOL FAR PASCAL SpyInstallHook( HAB, HMQ, USHORT); ! 53: BOOL FAR PASCAL SpyReleaseHook( BOOL ); ! 54: BOOL FAR PASCAL SpyHookOnOrOff( BOOL); ! 55: BOOL FAR PASCAL SpySetWindowList(SHORT, HWND FAR *); ! 56: SHORT FAR PASCAL SpyGetWindowList(SHORT, HWND FAR *); ! 57: BOOL FAR PASCAL SpySetQueueList(SHORT, HMQ FAR *); ! 58: SHORT FAR PASCAL SpyGetQueueList(SHORT, HMQ FAR *); ! 59: BOOL FAR PASCAL SpySetMessageList(UCHAR FAR *, BOOL); ! 60: BOOL FAR PASCAL SpyFWindowInList(HWND, BOOL); ! 61: BOOL FAR PASCAL SpySetAllFrameOpt(BOOL); ! 62: BOOL FAR PASCAL SpySetAllWindowOpt (BOOL); ! 63: ! 64: BOOL FAR PASCAL SpyGetNextMessage(PQMSGSPY, CHAR FAR *, SHORT, LONG); ! 65: ! 66: /* API's For trying to get info symbol information from other PID */ ! 67: BOOL FAR PASCAL SpySetLNSymbolPID(PID, USHORT); ! 68: int FAR PASCAL SpyGetLNSymbolSelector(PWHOISINFO);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.