mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
3.7 KiB
158 lines
3.7 KiB
/*****************************************************************************\
|
|
*
|
|
* Module: spy.h
|
|
*
|
|
* Main include file for the Windows debugging Spy SDK applet.
|
|
*
|
|
* History:
|
|
*
|
|
\*****************************************************************************/
|
|
|
|
#include <windows.h>
|
|
|
|
#include "dialogs.h"
|
|
#include "..\hook.h"
|
|
|
|
|
|
#define MAXSTRING MAX_PATH
|
|
|
|
#define LINES_MAX 250 // Max lines allowed in window.
|
|
|
|
|
|
//
|
|
// Message Table Flags
|
|
//
|
|
#define MTF_SELECTED 0x00000001
|
|
|
|
#define MTF_TYPE_MOUSE 0x00010000
|
|
#define MTF_TYPE_DDE 0x00020000
|
|
#define MTF_TYPE_CLIP 0x00040000
|
|
#define MTF_TYPE_NC 0x00080000
|
|
#define MTF_TYPE_KEYBD 0x00100000
|
|
#define MTF_TYPE_LB 0x00200000
|
|
#define MTF_TYPE_BM 0x00400000
|
|
#define MTF_TYPE_STM 0x00800000
|
|
#define MTF_TYPE_CB 0x01000000
|
|
#define MTF_TYPE_EM 0x02000000
|
|
#ifdef FE_IME
|
|
#define MTF_TYPE_IME 0x04000000
|
|
#endif
|
|
|
|
|
|
//
|
|
// Menu ids.
|
|
//
|
|
|
|
#define MENU_SPY_SELECTWINDOW 1000
|
|
#define MENU_SPY_ABOUT 1001
|
|
#define MENU_SPY_EXIT 1002
|
|
|
|
#define MENU_EDIT_CUT 1100
|
|
#define MENU_EDIT_COPY 1101
|
|
#define MENU_EDIT_CLEAR 1102
|
|
|
|
#define MENU_OPTIONS_MESSAGES 1200
|
|
#define MENU_OPTIONS_FONT 1201
|
|
#define MENU_OPTIONS_OUTPUT 1202
|
|
|
|
#define MENU_START 1300
|
|
#define MENU_STOP 1301
|
|
|
|
//
|
|
// Resource file constants
|
|
//
|
|
#define IDS_APPLICATION_NAME 2000
|
|
#define IDS_MENU_START 2001
|
|
#define IDS_MENU_STOP 2002
|
|
#define IDS_PARENT 2003
|
|
#define IDS_NOPARENT 2004
|
|
#define IDS_UNDEFINED 2005
|
|
#define IDS_ERROR_WND_LINE 2006
|
|
#define IDS_ERROR_CANT_OPEN_FILE 2007
|
|
#define IDS_ERROR_CANT_OPEN_COM1 2008
|
|
#define IDS_ERROR_CANT_LOAD_DLL 2009
|
|
|
|
//
|
|
// Position of the top level Start/Stop menu item.
|
|
//
|
|
#define MENUPOS_STARTSTOP 3
|
|
|
|
|
|
//
|
|
// Prototype for the Message Decode functions.
|
|
//
|
|
typedef VOID (*LPFNDECODE)(HWND, UINT, PSPYMSGDATA);
|
|
|
|
|
|
//
|
|
// The Message Description Table structure that describes each message
|
|
// that Spy understands.
|
|
//
|
|
typedef struct
|
|
{
|
|
LPTSTR pszMsg;
|
|
UINT msg;
|
|
UINT Flags;
|
|
LPFNDECODE pfnDecode;
|
|
} MSGDESC, *PMSGDESC;
|
|
|
|
|
|
//
|
|
// The message group structure. A table of these structures describes
|
|
// each different group of messages that can be selected/deselected
|
|
// for spying on using the Messages dialog.
|
|
//
|
|
typedef struct
|
|
{
|
|
INT idCheckBox;
|
|
DWORD flMask;
|
|
INT cMsgs;
|
|
INT cUseCount;
|
|
} MSGGROUP, *PMSGGROUP;
|
|
|
|
|
|
extern HANDLE ghInst;
|
|
extern HWND ghwndSpyApp;
|
|
extern HWND ghwndPrintf;
|
|
extern HANDLE ghHookThread;
|
|
extern HWND ghwndSpyHook;
|
|
extern HWND ghwndSpyingOn; // The window we are spying on.
|
|
extern HFONT ghfontPrintf;
|
|
extern INT gnLines;
|
|
extern BOOL gfSpyOn;
|
|
extern BOOL gfSpyAll;
|
|
extern BOOL gfOutputWin;
|
|
extern BOOL gfOutputCom1;
|
|
extern BOOL gfOutputFile;
|
|
extern HFILE gfhFile;
|
|
#ifdef JAPAN // DBCS_FIX
|
|
extern HANDLE gfhCom1;
|
|
#endif
|
|
extern CHAR gszFile[];
|
|
extern INT gcxBorder;
|
|
extern INT gcyBorder;
|
|
extern BOOL gfMsgsUser;
|
|
extern BOOL gfMsgsUnknown;
|
|
extern CHAR gszAppName[];
|
|
#ifdef JAPAN
|
|
// BUGBUG Should the Japan code be the standard? FloydR
|
|
extern UCHAR gszWindowName[];
|
|
#endif
|
|
extern WINDOWPLACEMENT gwndpl;
|
|
|
|
extern MSGDESC gaMsgs[];
|
|
extern INT gcMessages;
|
|
extern MSGGROUP gaMsgGroup[];
|
|
extern INT gcMsgGroups;
|
|
extern INT gaiSelected[];
|
|
extern INT gaiSelected2[];
|
|
|
|
|
|
#include "spyfuncs.h"
|
|
#include "wprintf.h"
|
|
|
|
#ifdef FE_IME
|
|
#include <ime.h> // For WM_IME_REPORT
|
|
#include <winuser.h> // For WM_IMEKEYDOWN, WM_IMEKEYUP
|
|
#endif
|
|
|