|
|
Microsoft OS/2 SDK PM 02-24-1989
/****** Resource IDs *****/
#define IDR_SPY 1
#define IDD_DLGSPY 0x001
#define MessagesDlg 0x002
#define OutputsDlg 0x003
#define WindowsDlg 0x004
#define SaveListDlg 0x005
#define AboutDlg 0x006
#define ListNearDlg 0x007
#define MsgQueueDlg 0x008
/****** Menu command IDs *****/
/* (by convention, hi byte is menu index, lo byte is dispatch table index) */
/* Spy Menu */
#define CMD_ACTIVE 0x0000
#define CMD_EXIT 0x0001
#define CMD_ABOUT 0x0002
#define CMD_CLRWIN 0x0003
#define CMD_SAVEWIN 0x0004
#define CMD_SAVEOPT 0x0005
#define CMD_LISTNEAR 0x0006
/* Window Menu */
#define CMD_WINDOWS 0x0100
#define CMD_QUEUES 0x0101
#define CMD_WNMSSEL 0x0102
#define CMD_WNMSDSL 0x0103
#define CMD_ALLWNDWS 0x0104
#define CMD_ALLFRAMES 0x0105
#define CMD_WNDPWIN 0x0106
#define CMD_WNDPALL 0x0107
/* Message Menu */
#define CMD_MESSAGES 0x0200
#define CMD_MGDABLE 0x0201
#define CMD_MGEABLE 0x0202
#define CMD_ALPHASORT 0x0203
/* Hooks Menu */
#define CMD_INPUTHOOK 0x0300
#define CMD_SENDMSGHOOK 0x0301
#define CMD_SENDEXTEND 0x0302
#define CMD_SENDSTACK 0x0303
/* Outputs Menu */
#define CMD_OUTSCREEN 0x0400
#define CMD_OUTTERM 0x0401
#define CMD_OUTFILE 0x0402
#define CMD_OUTPUTS 0x0403
#define IDD_DLGOPTIONS 0x010
#define IDD_DLGWINDOWS 0x020
#define IDD_DLGSAVELIST 0x030
#define IDD_DLGLISTNEAR 0x040
/* From the Main Dialog */
#define DID_SPYLIST 0x0100
/* From the Options Dialog */
#define DID_OMSGLIST 0x0100
#define DID_MALL 0x0101
#define DID_MNONE 0x0102
#define DID_MCON 0x0103
#define DID_MCOFF 0x0104
#define DID_MMON 0x0105
#define DID_MMOFF 0x0106
#define DID_MFON 0x0107
#define DID_MFOFF 0x0108
#define DID_MSGEDIT 0x0109
#define DID_OINPUT 0x0120
#define DID_OSENDMSG 0x0121
#define DID_OTHERMSGS 0x0122
#define DID_WINDOW 0x0110
#define DID_DEBUG 0x0111
#define DID_FILE 0x0112
#define DID_WINDOWLINES 0x0113
#define DID_FILENAME 0x0114
/* From the Windows Dialog */
#define DID_WINDOWLIST 0x0200
#define DID_WHANDLE 0x0201
#define DID_WPARENT 0x0202
#define DID_WCHILD 0x0203
#define DID_WOWNER 0x0204
#define DID_WRECT 0x0205
#define DID_WID 0x0207
#define DID_WSELALL 0x0208
#define DID_WUNSELALL 0x0209
#define DID_WSELMOUSE 0x020a
#define DID_WSTYLE 0x020b
#define DID_WCSTYLE 0x020c
#define DID_WPFNWP 0x020d
#define DID_WHMQ 0x020e
#define DID_WCLASS 0x020f
#define DID_WOLINE1 0x0210
#define DID_WOLINE2 0x0211
#define DID_WOLINE3 0x0212
#define DID_WOLINE4 0x0213
#define DID_WTEXT 0x0214
#define DID_WPID 0x0215
#define DID_WTID 0x0216
/* From the save file dialog */
#define DID_APPEND 0x0300
/* From the symbol dialog */
#define DID_SYMLIST 0x0400
#define DID_ADDRLABEL 0x0401
#define DID_ADDR 0x0402
#define DID_PIDLABEL 0x0403
#define DID_PID 0x0404
/*
* Define data structures
*/
typedef struct _SPYOPT { /* Spy Options */
/* Now define the output options */
/* In options dialog */
BOOL fWindow;
BOOL fFile;
SHORT cWindowLines;
HFILE hfileSpy; /* if all lines go to file */
/* SendMsg Hook Output options */
USHORT bHooks; /* Which hooks are enabled */
BOOL fSendExtend; /* Should extended data be displayed */
BOOL fSendStack; /* Should call stack be displayed */
/* In Save file dialog */
BOOL fAppend;
/* In Message Dialog */
BOOL fDispOtherMsgs; /* Undefined messages displayed? */
BOOL fAlphaSortMsgList; /* Should the message list be sorted */
} SPYOPT; /* spyoptions */
typedef struct _spystr {
/* Define file names at end, will define as seperate strings in os2.ini */
CHAR szFileName[100];
char szSaveFileName[100];
} SPYSTR; /* Strings are seperated from options */
typedef struct _IDTONAME {
USHORT id; /* id of window */
char *szIdName; /* String with text of ID */
} IDTONAME;
/*
* Define the system defined limits
*/
#define CBSTACK 4096
/* This is a real hack, estimate size of WND Structure */
#define SIZEOFWND 34
#define MAXMSGBYTES 100
/*
* Define Message output information
*/
#define MSGI_ENABLED 0x0001
#define MSGI_MOUSE 0x0002 /* Mouse type messages */
#define MSGI_KEY 0x0004 /* Key type messages */
#define MSGI_FREQ 0x0010 /* Frequent messages generaly ignored */
typedef struct _MSGI {
USHORT msg;
char *szMsg;
USHORT wOptions;
UCHAR bMPTypes;
SHORT iListBox;
} MSGI;
/*
* Now define all of the global strutures that are exported from
* the initializition file
*/
extern SPYOPT spyopt;
extern SPYSTR spystr;
extern MSGI rgmsgi[];
extern SHORT cmsgi; /* Count of message info items */
extern IDTONAME rgidtoname[];
extern SHORT cToName; /* Count of items in cToName */
/*
* External definitions used between source files
*/
extern HAB hab;
extern HMQ hmqSpy;
extern HWND hwndSpy;
extern HWND hwndSpyFrame;
extern HWND hwndSpyList;
extern HWND hwndWindowLB;
extern HWND hwndMessageLB;
extern HHEAP hHeap;
extern SHORT cxBorder;
extern SHORT cyBorder;
extern HPOINTER hptrArrow;
extern HPOINTER hptrSelWin;
extern USHORT iCurItemFocus; /* Index to item that has the focus */
extern BOOL fSpyActive; /* Any non-zero is true */
extern BOOL fTrackingListBox; /* Tracking windows active ? */
extern BOOL fAllFrames; /* Are we processing all frames ? */
extern BOOL fAllWindows; /* Are we processing all windows ? */
extern HWND hwndWinDlgDisp; /* hwnds info in Window Dialog */
/*
* simple structure for sorting Hwnds in dumping
*/
typedef struct _spwd {
HWND hwnd;
SHORT index;
} SPWD;
#define MAXSPYDUMP 1000 /* Max of a thousand windows */
extern SHORT wDumpCount; /* Count of which window is being dumped */
extern SPWD *pspwd;
/*
* External function definitions
*/
/*
* Spy.c
*/
extern MRESULT CALLBACK SpyWndProc();
extern USHORT UConvertStringToNum(char *);
extern void OutputString(char [], SHORT);
extern MSGI *PmsgiFromMsg(USHORT);
/*
* Message.c
*/
extern MRESULT CALLBACK SpyMsgDlgProc();
extern void UpdateHooksMsgTable(void);
extern void EnableOrDisableMsg(BOOL);
/*
* Options.c
*/
extern MRESULT CALLBACK SpyOutputsDlgProc();
extern MRESULT CALLBACK SpySaveListDlgProc();
extern MRESULT CALLBACK AboutWndProc();
/*
* Queue.c
*/
extern MRESULT CALLBACK SpyQueuesDlgProc();
extern void EnableOrDisableMsg(BOOL);
extern void UpdateHooksMsgTable(void);
/*
* Symbol.c
*/
extern MRESULT CALLBACK ListNearDlgProc();
/*
* Window.c
*/
extern MRESULT CALLBACK SpyWindowsDlgProc();
extern void DumpOneWindowInfo(void);
extern SHORT DumpAllWindowsInfo(HWND, SHORT);
extern void DumpWindowIndex(SHORT);
extern void SelOrDeselWithMouse(BOOL);
extern HWND HwndSelWinWithMouse(HWND, void (*)(HWND, HWND));
/*
* SpyUtil.asm
*/
extern BOOL FValidPointer (CHAR FAR *pVoid, SHORT cbStruct);
extern BOOL FGuessValidPointer (CHAR FAR *pVoid, SHORT cbStruct);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.