SPY.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /******************************************************************************
  2. *       This is a part of the Microsoft Source Code Samples. 
  3. *       Copyright (C) 1993-1997 Microsoft Corporation.
  4. *       All rights reserved. 
  5. *       This source code is only intended as a supplement to 
  6. *       Microsoft Development Tools and/or WinHelp documentation.
  7. *       See these sources for detailed information regarding the 
  8. *       Microsoft samples programs.
  9. ******************************************************************************/
  10. /*****************************************************************************
  11. *
  12. * Module: spy.h
  13. *
  14. *   Main include file for the Windows debugging Spy SDK applet.
  15. *
  16. *****************************************************************************/
  17. #include <windows.h>
  18. #ifdef  FE_IME
  19. #include <ime.h>
  20. #endif
  21. #include "dialogs.h"
  22. #include "..hook.h"
  23. #define MAXSTRING                   MAX_PATH
  24. #define LINES_MAX                   250         // Max lines allowed in window.
  25. //
  26. // Message Table Flags
  27. //
  28. #define MTF_SELECTED                0x00000001
  29. #define MTF_TYPE_MOUSE              0x00010000
  30. #define MTF_TYPE_DDE                0x00020000
  31. #define MTF_TYPE_CLIP               0x00040000
  32. #define MTF_TYPE_NC                 0x00080000
  33. #define MTF_TYPE_KEYBD              0x00100000
  34. #define MTF_TYPE_LB                 0x00200000
  35. #define MTF_TYPE_BM                 0x00400000
  36. #define MTF_TYPE_STM                0x00800000
  37. #define MTF_TYPE_CB                 0x01000000
  38. #define MTF_TYPE_EM                 0x02000000
  39. #ifdef FE_IME
  40. #define MTF_TYPE_IME                0x04000000
  41. #endif
  42. //
  43. // Menu ids.
  44. //
  45. #define MENU_SPY_SELECTWINDOW       1000
  46. #define MENU_SPY_ABOUT              1001
  47. #define MENU_SPY_EXIT               1002
  48. #define MENU_EDIT_CUT               1100
  49. #define MENU_EDIT_COPY              1101
  50. #define MENU_EDIT_CLEAR             1102
  51. #define MENU_OPTIONS_MESSAGES       1200
  52. #define MENU_OPTIONS_FONT           1201
  53. #define MENU_OPTIONS_OUTPUT         1202
  54. #define MENU_START                  1300
  55. #define MENU_STOP                   1301
  56. //
  57. // Resource file constants
  58. //
  59. #define IDS_APPLICATION_NAME        2000
  60. #define IDS_MENU_START              2001
  61. #define IDS_MENU_STOP               2002
  62. #define IDS_PARENT                  2003
  63. #define IDS_NOPARENT                2004
  64. #define IDS_UNDEFINED               2005
  65. #define IDS_ERROR_WND_LINE          2006
  66. #define IDS_ERROR_CANT_OPEN_FILE    2007
  67. #define IDS_ERROR_CANT_OPEN_COM1    2008
  68. #define IDS_ERROR_CANT_LOAD_DLL     2009
  69. //
  70. // Position of the top level Start/Stop menu item.
  71. //
  72. #define MENUPOS_STARTSTOP           3
  73. //
  74. // Prototype for the Message Decode functions.
  75. //
  76. typedef VOID (*LPFNDECODE)(HWND, UINT, PSPYMSGDATA);
  77. //
  78. // The Message Description Table structure that describes each message
  79. // that Spy understands.
  80. //
  81. typedef struct
  82. {
  83.     LPTSTR pszMsg;
  84.     UINT msg;
  85.     UINT Flags;
  86.     LPFNDECODE pfnDecode;
  87. } MSGDESC, *PMSGDESC;
  88. //
  89. // The message group structure.  A table of these structures describes
  90. // each different group of messages that can be selected/deselected
  91. // for spying on using the Messages dialog.
  92. //
  93. typedef struct
  94. {
  95.     INT idCheckBox;
  96.     DWORD flMask;
  97.     INT cMsgs;
  98.     INT cUseCount;
  99. } MSGGROUP, *PMSGGROUP;
  100. extern HANDLE ghInst;
  101. extern HWND ghwndSpyApp;
  102. extern HWND ghwndPrintf;
  103. extern HANDLE ghHookThread;
  104. extern HWND ghwndSpyHook;
  105. extern HWND ghwndSpyingOn;              // The window we are spying on.
  106. extern HFONT ghfontPrintf;
  107. extern INT gnLines;
  108. extern BOOL gfSpyOn;
  109. extern BOOL gfSpyAll;
  110. extern BOOL gfOutputWin;
  111. extern BOOL gfOutputCom1;
  112. extern BOOL gfOutputFile;
  113. extern HFILE gfhFile;
  114. extern HANDLE gfhCom1;
  115. extern CHAR gszFile[];
  116. extern INT gcxBorder;
  117. extern INT gcyBorder;
  118. extern BOOL gfMsgsUser;
  119. extern BOOL gfMsgsUnknown;
  120. extern CHAR gszAppName[];
  121. extern UCHAR gszWindowName[];
  122. extern WINDOWPLACEMENT gwndpl;
  123. extern MSGDESC gaMsgs[];
  124. extern INT gcMessages;
  125. extern MSGGROUP gaMsgGroup[];
  126. extern INT gcMsgGroups;
  127. extern INT gaiSelected[];
  128. extern INT gaiSelected2[];
  129. #include "spyfuncs.h"
  130. #include "wprintf.h"
  131. #ifdef FE_IME
  132. #include <ime.h>               //  For WM_IME_REPORT
  133. #include <winuser.h>           //  For WM_IMEKEYDOWN, WM_IMEKEYUP
  134. #endif