📄 wm.c
字号:
/******************************************************************************\
* This is a part of the Microsoft Source Code Samples.
* Copyright (C) 1993-1997 Microsoft Corporation.
* All rights reserved.
* This source code is only intended as a supplement to
* Microsoft Development Tools and/or WinHelp documentation.
* See these sources for detailed information regarding the
* Microsoft samples programs.
\******************************************************************************/
/*****************************************************************************\
*
* Module: wm.c
*
* Contains functions that lookup and format messages received by the
* Windows debugging Spy SDK applet.
*
* Functions:
*
* CalculatePrintfTabs()
* PrintMsg()
* DecodeGeneric()
* MsgCmp()
* mprintf()
*
* Comments:
*
\*****************************************************************************/
#include "spy.h"
#include <stdlib.h>
#include <dde.h>
PRIVATE CHAR szFormatName[] = "%08X\t%s\t%08X\t%08X\r\n";
PRIVATE CHAR szFormatUSER[] = "%08X\tWM_USER+%d\t%08X\t%08X\r\n";
PRIVATE CHAR szFormatUnknown[] = "%08X\tWM_%04X\t%08X\t%08X\r\n";
VOID DecodeGeneric(HWND hwnd, UINT msg, PSPYMSGDATA psmd) {}
//
// Message description table. Describes each message that can be spied on.
// This table must be kept in sorted order.
//
MSGDESC gaMsgs[] =
{
{ "WM_NULL", WM_NULL, // 0x0000
0, DecodeGeneric },
{ "WM_CREATE", WM_CREATE, // 0x0001
0, DecodeGeneric },
{ "WM_DESTROY", WM_DESTROY, // 0x0002
0, DecodeGeneric },
{ "WM_MOVE", WM_MOVE, // 0x0003
0, DecodeGeneric },
{ "WM_SIZE", WM_SIZE, // 0x0005
0, DecodeGeneric },
{ "WM_ACTIVATE", WM_ACTIVATE, // 0x0006
0, DecodeGeneric },
{ "WM_SETFOCUS", WM_SETFOCUS, // 0x0007
0, DecodeGeneric },
{ "WM_KILLFOCUS", WM_KILLFOCUS, // 0x0008
0, DecodeGeneric },
{ "WM_ENABLE", WM_ENABLE, // 0x000A
0, DecodeGeneric },
{ "WM_SETREDRAW", WM_SETREDRAW, // 0x000B
0, DecodeGeneric },
{ "WM_SETTEXT", WM_SETTEXT, // 0x000C
0, DecodeGeneric },
{ "WM_GETTEXT", WM_GETTEXT, // 0x000D
0, DecodeGeneric },
{ "WM_GETTEXTLENGTH", WM_GETTEXTLENGTH, // 0x000E
0, DecodeGeneric },
{ "WM_PAINT", WM_PAINT, // 0x000F
0, DecodeGeneric },
{ "WM_CLOSE", WM_CLOSE, // 0x0010
0, DecodeGeneric },
{ "WM_QUERYENDSESSION", WM_QUERYENDSESSION, // 0x0011
0, DecodeGeneric },
{ "WM_QUIT", WM_QUIT, // 0x0012
0, DecodeGeneric },
{ "WM_QUERYOPEN", WM_QUERYOPEN, // 0x0013
0, DecodeGeneric },
{ "WM_ERASEBKGND", WM_ERASEBKGND, // 0x0014
0, DecodeGeneric },
{ "WM_SYSCOLORCHANGE", WM_SYSCOLORCHANGE, // 0x0015
0, DecodeGeneric },
{ "WM_ENDSESSION", WM_ENDSESSION, // 0x0016
0, DecodeGeneric },
{ "WM_SHOWWINDOW", WM_SHOWWINDOW, // 0x0018
0, DecodeGeneric },
{ "WM_WININICHANGE", WM_WININICHANGE, // 0x001A
0, DecodeGeneric },
{ "WM_DEVMODECHANGE", WM_DEVMODECHANGE, // 0x001B
0, DecodeGeneric },
{ "WM_ACTIVATEAPP", WM_ACTIVATEAPP, // 0x001C
0, DecodeGeneric },
{ "WM_FONTCHANGE", WM_FONTCHANGE, // 0x001D
0, DecodeGeneric },
{ "WM_TIMECHANGE", WM_TIMECHANGE, // 0x001E
0, DecodeGeneric },
{ "WM_CANCELMODE", WM_CANCELMODE, // 0x001F
0, DecodeGeneric },
{ "WM_SETCURSOR", WM_SETCURSOR, // 0x0020
MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_MOUSEACTIVATE", WM_MOUSEACTIVATE, // 0x0021
MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_CHILDACTIVATE", WM_CHILDACTIVATE, // 0x0022
0, DecodeGeneric },
{ "WM_QUEUESYNC", WM_QUEUESYNC, // 0x0023
0, DecodeGeneric },
{ "WM_GETMINMAXINFO", WM_GETMINMAXINFO, // 0x0024
0, DecodeGeneric },
{ "WM_PAINTICON", WM_PAINTICON, // 0x0026
0, DecodeGeneric },
{ "WM_ICONERASEBKGND", WM_ICONERASEBKGND, // 0x0027
0, DecodeGeneric },
{ "WM_NEXTDLGCTL", WM_NEXTDLGCTL, // 0x0028
0, DecodeGeneric },
{ "WM_SPOOLERSTATUS", WM_SPOOLERSTATUS, // 0x002A
0, DecodeGeneric },
{ "WM_DRAWITEM", WM_DRAWITEM, // 0x002B
0, DecodeGeneric },
{ "WM_MEASUREITEM", WM_MEASUREITEM, // 0x002C
0, DecodeGeneric },
{ "WM_DELETEITEM", WM_DELETEITEM, // 0x002D
0, DecodeGeneric },
{ "WM_VKEYTOITEM", WM_VKEYTOITEM, // 0x002E
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_CHARTOITEM", WM_CHARTOITEM, // 0x002F
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_SETFONT", WM_SETFONT, // 0x0030
0, DecodeGeneric },
{ "WM_GETFONT", WM_GETFONT, // 0x0031
0, DecodeGeneric },
{ "WM_SETHOTKEY", WM_SETHOTKEY, // 0x0032
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_GETHOTKEY", WM_GETHOTKEY, // 0x0033
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_QUERYDRAGICON", WM_QUERYDRAGICON, // 0x0037
0, DecodeGeneric },
{ "WM_COMPAREITEM", WM_COMPAREITEM, // 0x0039
0, DecodeGeneric },
{ "WM_COMPACTING", WM_COMPACTING, // 0x0041
0, DecodeGeneric },
{ "WM_WINDOWPOSCHANGING", WM_WINDOWPOSCHANGING, // 0x0046
0, DecodeGeneric },
{ "WM_WINDOWPOSCHANGED", WM_WINDOWPOSCHANGED, // 0x0047
0, DecodeGeneric },
{ "WM_POWER", WM_POWER, // 0x0048
0, DecodeGeneric },
{ "WM_COPYDATA", WM_COPYDATA, // 0x004A
0, DecodeGeneric },
{ "WM_CANCELJOURNAL", WM_CANCELJOURNAL, // 0x004B
0, DecodeGeneric },
{ "WM_NCCREATE", WM_NCCREATE, // 0x0081
MTF_TYPE_NC, DecodeGeneric },
{ "WM_NCDESTROY", WM_NCDESTROY, // 0x0082
MTF_TYPE_NC, DecodeGeneric },
{ "WM_NCCALCSIZE", WM_NCCALCSIZE, // 0x0083
MTF_TYPE_NC, DecodeGeneric },
{ "WM_NCHITTEST", WM_NCHITTEST, // 0x0084
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCPAINT", WM_NCPAINT, // 0x0085
MTF_TYPE_NC, DecodeGeneric },
{ "WM_NCACTIVATE", WM_NCACTIVATE, // 0x0086
MTF_TYPE_NC, DecodeGeneric },
{ "WM_GETDLGCODE", WM_GETDLGCODE, // 0x0087
0, DecodeGeneric },
{ "WM_NCMOUSEMOVE", WM_NCMOUSEMOVE, // 0x00A0
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCLBUTTONDOWN", WM_NCLBUTTONDOWN, // 0x00A1
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCLBUTTONUP", WM_NCLBUTTONUP, // 0x00A2
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCLBUTTONDBLCLK", WM_NCLBUTTONDBLCLK, // 0x00A3
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCRBUTTONDOWN", WM_NCRBUTTONDOWN, // 0x00A4
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCRBUTTONUP", WM_NCRBUTTONUP, // 0x00A5
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCRBUTTONDBLCLK", WM_NCRBUTTONDBLCLK, // 0x00A6
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCMBUTTONDOWN", WM_NCMBUTTONDOWN, // 0x00A7
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCMBUTTONUP", WM_NCMBUTTONUP, // 0x00A8
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "WM_NCMBUTTONDBLCLK", WM_NCMBUTTONDBLCLK, // 0x00A9
MTF_TYPE_NC | MTF_TYPE_MOUSE, DecodeGeneric },
{ "EM_GETSEL", EM_GETSEL, // 0x00B0
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SETSEL", EM_SETSEL, // 0x00B1
MTF_TYPE_EM, DecodeGeneric },
{ "EM_GETRECT", EM_GETRECT, // 0x00B2
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SETRECT", EM_SETRECT, // 0x00B3
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SETRECTNP", EM_SETRECTNP, // 0x00B4
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SCROLL", EM_SCROLL, // 0x00B5
MTF_TYPE_EM, DecodeGeneric },
{ "EM_LINESCROLL", EM_LINESCROLL, // 0x00B6
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SCROLLCARET", EM_SCROLLCARET, // 0x00B7
MTF_TYPE_EM, DecodeGeneric },
{ "EM_GETMODIFY", EM_GETMODIFY, // 0x00B8
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SETMODIFY", EM_SETMODIFY, // 0x00B9
MTF_TYPE_EM, DecodeGeneric },
{ "EM_GETLINECOUNT", EM_GETLINECOUNT, // 0x00BA
MTF_TYPE_EM, DecodeGeneric },
{ "EM_LINEINDEX", EM_LINEINDEX, // 0x00BB
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SETHANDLE", EM_SETHANDLE, // 0x00BC
MTF_TYPE_EM, DecodeGeneric },
{ "EM_GETHANDLE", EM_GETHANDLE, // 0x00BD
MTF_TYPE_EM, DecodeGeneric },
{ "EM_GETTHUMB", EM_GETTHUMB, // 0x00BE
MTF_TYPE_EM, DecodeGeneric },
{ "EM_LINELENGTH", EM_LINELENGTH, // 0x00C1
MTF_TYPE_EM, DecodeGeneric },
{ "EM_REPLACESEL", EM_REPLACESEL, // 0x00C2
MTF_TYPE_EM, DecodeGeneric },
{ "EM_GETLINE", EM_GETLINE, // 0x00C4
MTF_TYPE_EM, DecodeGeneric },
{ "EM_LIMITTEXT", EM_LIMITTEXT, // 0x00C5
MTF_TYPE_EM, DecodeGeneric },
{ "EM_CANUNDO", EM_CANUNDO, // 0x00C6
MTF_TYPE_EM, DecodeGeneric },
{ "EM_UNDO", EM_UNDO, // 0x00C7
MTF_TYPE_EM, DecodeGeneric },
{ "EM_FMTLINES", EM_FMTLINES, // 0x00C8
MTF_TYPE_EM, DecodeGeneric },
{ "EM_LINEFROMCHAR", EM_LINEFROMCHAR, // 0x00C9
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SETTABSTOPS", EM_SETTABSTOPS, // 0x00CB
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SETPASSWORDCHAR", EM_SETPASSWORDCHAR, // 0x00CC
MTF_TYPE_EM, DecodeGeneric },
{ "EM_EMPTYUNDOBUFFER", EM_EMPTYUNDOBUFFER, // 0x00CD
MTF_TYPE_EM, DecodeGeneric },
{ "EM_GETFIRSTVISIBLELINE", EM_GETFIRSTVISIBLELINE, // 0x00CE
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SETREADONLY", EM_SETREADONLY, // 0x00CF
MTF_TYPE_EM, DecodeGeneric },
{ "EM_SETWORDBREAKPROC", EM_SETWORDBREAKPROC, // 0x00D0
MTF_TYPE_EM, DecodeGeneric },
{ "EM_GETWORDBREAKPROC", EM_GETWORDBREAKPROC, // 0x00D1
MTF_TYPE_EM, DecodeGeneric },
{ "EM_GETPASSWORDCHAR", EM_GETPASSWORDCHAR, // 0x00D2
MTF_TYPE_EM, DecodeGeneric },
{ "SBM_SETPOS", SBM_SETPOS, // 0x00E0
0, DecodeGeneric },
{ "SBM_GETPOS", SBM_GETPOS, // 0x00E1
0, DecodeGeneric },
{ "SBM_SETRANGE", SBM_SETRANGE, // 0x00E2
0, DecodeGeneric },
{ "SBM_GETRANGE", SBM_GETRANGE, // 0x00E3
0, DecodeGeneric },
{ "SBM_ENABLE_ARROWS", SBM_ENABLE_ARROWS, // 0x00E4
0, DecodeGeneric },
{ "SBM_SETRANGEREDRAW", SBM_SETRANGEREDRAW, // 0x00E6
0, DecodeGeneric },
{ "BM_GETCHECK", BM_GETCHECK, // 0x00F0
MTF_TYPE_BM, DecodeGeneric },
{ "BM_SETCHECK", BM_SETCHECK, // 0x00F1
MTF_TYPE_BM, DecodeGeneric },
{ "BM_GETSTATE", BM_GETSTATE, // 0x00F2
MTF_TYPE_BM, DecodeGeneric },
{ "BM_SETSTATE", BM_SETSTATE, // 0x00F3
MTF_TYPE_BM, DecodeGeneric },
{ "BM_SETSTYLE", BM_SETSTYLE, // 0x00F4
MTF_TYPE_BM, DecodeGeneric },
{ "WM_KEYDOWN", WM_KEYDOWN, // 0x0100
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_KEYUP", WM_KEYUP, // 0x0101
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_CHAR", WM_CHAR, // 0x0102
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_DEADCHAR", WM_DEADCHAR, // 0x0103
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_SYSKEYDOWN", WM_SYSKEYDOWN, // 0x0104
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_SYSKEYUP", WM_SYSKEYUP, // 0x0105
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_SYSCHAR", WM_SYSCHAR, // 0x0106
MTF_TYPE_KEYBD, DecodeGeneric },
{ "WM_SYSDEADCHAR", WM_SYSDEADCHAR, // 0x0107
MTF_TYPE_KEYBD, DecodeGeneric },
#ifdef FE_IME
{ "WM_WNT_CONVERTREQUESTEX", WM_WNT_CONVERTREQUESTEX, // 0x0109
MTF_TYPE_IME, DecodeGeneric },
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -