home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / os2sdk / os2sdk12 / spy / spyhook.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-10  |  2.5 KB  |  69 lines

  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, PSZ, 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);
  69.