Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

328 lines
14 KiB

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
trdebug.c
Abstract: This module contains all the debug functions.
Environment:
User mode
Author:
Michael Tsang (MikeTs) 13-Mar-2000
Revision History:
--*/
#include "pch.h"
#ifdef TRDEBUG
int giTRVerboseLevel = 0;
NAMETABLE WMMsgNames[] =
{
WM_NULL, "Null",
WM_CREATE, "Create",
WM_DESTROY, "Destroy",
WM_MOVE, "Move",
WM_SIZE, "Size",
WM_ACTIVATE, "Activate",
WM_SETFOCUS, "SetFocus",
WM_KILLFOCUS, "KillFocus",
WM_ENABLE, "Enable",
WM_SETREDRAW, "SetRedraw",
WM_SETTEXT, "SetText",
WM_GETTEXT, "GetText",
WM_GETTEXTLENGTH, "GetTextLen",
WM_PAINT, "Paint",
WM_CLOSE, "Close",
WM_QUERYENDSESSION, "QueryEndSession",
WM_QUERYOPEN, "QueryOpen",
WM_ENDSESSION, "EndSession",
WM_QUIT, "Quit",
WM_ERASEBKGND, "EraseBackground",
WM_SYSCOLORCHANGE, "SysColorChange",
WM_SHOWWINDOW, "ShowWindow",
WM_WININICHANGE, "WinIniChange",
WM_SETTINGCHANGE, "SettingChange",
WM_DEVMODECHANGE, "DevModeChange",
WM_ACTIVATEAPP, "ActivateApp",
WM_FONTCHANGE, "FontChange",
WM_TIMECHANGE, "TimeChange",
WM_CANCELMODE, "CancelMode",
WM_SETCURSOR, "SetCursor",
WM_MOUSEACTIVATE, "MouseActivate",
WM_CHILDACTIVATE, "ChildActivate",
WM_QUEUESYNC, "QueueSync",
WM_GETMINMAXINFO, "GetMinMaxInfo",
WM_PAINTICON, "PaintIcon",
WM_ICONERASEBKGND, "IconEraseBackground",
WM_NEXTDLGCTL, "NextDialogControl",
WM_SPOOLERSTATUS, "SpoolerStatus",
WM_DRAWITEM, "DrawItem",
WM_MEASUREITEM, "MeasureItem",
WM_DELETEITEM, "DeleteItem",
WM_VKEYTOITEM, "VKeyToItem",
WM_CHARTOITEM, "CharToItem",
WM_SETFONT, "SetFont",
WM_GETFONT, "GetFont",
WM_SETHOTKEY, "SetHotKey",
WM_GETHOTKEY, "GetHotKey",
WM_QUERYDRAGICON, "QueryDragIcon",
WM_COMPAREITEM, "CompareItem",
WM_GETOBJECT, "GetObject",
WM_COMPACTING, "Compacting",
WM_COMMNOTIFY, "CommNotify",
WM_WINDOWPOSCHANGING, "WindowPosChanging",
WM_WINDOWPOSCHANGED, "WindowPosChanged",
WM_POWER, "Power",
WM_COPYDATA, "CopyData",
WM_CANCELJOURNAL, "CancelJournal",
WM_NOTIFY, "Notify",
WM_INPUTLANGCHANGEREQUEST, "InputLangChangeRequest",
WM_INPUTLANGCHANGE, "InputLangChange",
WM_TCARD, "TCard",
WM_HELP, "Help",
WM_USERCHANGED, "UserChanged",
WM_NOTIFYFORMAT, "NotifyFormat",
WM_CONTEXTMENU, "ContextMenu",
WM_STYLECHANGING, "StyleChanging",
WM_STYLECHANGED, "StyleChanged",
WM_DISPLAYCHANGE, "DisplayChange",
WM_GETICON, "GetIcon",
WM_SETICON, "SetIcon",
WM_NCCREATE, "NCCreate",
WM_NCDESTROY, "NCDestroy",
WM_NCCALCSIZE, "NCCalcSize",
WM_NCHITTEST, "NCHitTest",
WM_NCPAINT, "NCPaint",
WM_NCACTIVATE, "NCActivate",
WM_GETDLGCODE, "GetDialogCode",
WM_SYNCPAINT, "SyncPaint",
WM_NCMOUSEMOVE, "NCMouseMove",
WM_NCLBUTTONDOWN, "NCLeftButtonDown",
WM_NCLBUTTONUP, "NCLeftButtonUp",
WM_NCLBUTTONDBLCLK, "NCLeftButtonDoubleClick",
WM_NCRBUTTONDOWN, "NCRightButtonDown",
WM_NCRBUTTONUP, "NCRightButtonUp",
WM_NCRBUTTONDBLCLK, "NCRightButtonDoubleClick",
WM_NCMBUTTONDOWN, "NCMiddleButtonDown",
WM_NCMBUTTONUP, "NCMiddleButtonUp",
WM_NCMBUTTONDBLCLK, "NCMiddleButtonDoubleClick",
WM_NCXBUTTONDOWN, "NCXButtonDown",
WM_NCXBUTTONUP, "NCXButtonUp",
WM_NCXBUTTONDBLCLK, "NCXButtonDoubleClick",
WM_KEYFIRST, "KeyFirst",
WM_KEYDOWN, "KeyDown",
WM_KEYUP, "KeyUp",
WM_CHAR, "Char",
WM_DEADCHAR, "DeadChar",
WM_SYSKEYDOWN, "SysKeyDown",
WM_SYSKEYUP, "SysKeyUp",
WM_SYSCHAR, "SysChar",
WM_SYSDEADCHAR, "SysDeadChar",
WM_KEYLAST, "KeyLast",
WM_IME_STARTCOMPOSITION, "IMEStartComposition",
WM_IME_ENDCOMPOSITION, "IMEEndComposition",
WM_IME_COMPOSITION, "IMEComposition",
WM_IME_KEYLAST, "IMEKeyLast",
WM_INITDIALOG, "InitDialog",
WM_COMMAND, "Command",
WM_SYSCOMMAND, "SysCommand",
WM_TIMER, "Timer",
WM_HSCROLL, "HScroll",
WM_VSCROLL, "VScroll",
WM_INITMENU, "InitMenu",
WM_INITMENUPOPUP, "InitMenuPopup",
WM_MENUSELECT, "MenuSelect",
WM_MENUCHAR, "MenuChar",
WM_ENTERIDLE, "EnterIdle",
WM_MENURBUTTONUP, "MenuRightButtonUp",
WM_MENUDRAG, "MenuDrag",
WM_MENUGETOBJECT, "MenuGetObject",
WM_UNINITMENUPOPUP, "UninitMenuPopup",
WM_MENUCOMMAND, "MenuCommand",
WM_CHANGEUISTATE, "ChangeUIState",
WM_UPDATEUISTATE, "UpdateUIState",
WM_QUERYUISTATE, "QueryUIState",
WM_CTLCOLORMSGBOX, "CtlColorMsgBox",
WM_CTLCOLOREDIT, "CtlColorEdit",
WM_CTLCOLORLISTBOX, "CtlColorListBox",
WM_CTLCOLORBTN, "CtlColorButton",
WM_CTLCOLORDLG, "CtlColorDialog",
WM_CTLCOLORSCROLLBAR, "CtlColorScrollBar",
WM_CTLCOLORSTATIC, "CtlColorStatic",
WM_MOUSEFIRST, "MouseFirst",
WM_MOUSEMOVE, "MouseMove",
WM_LBUTTONDOWN, "LeftButtonDown",
WM_LBUTTONUP, "LeftButtonUp",
WM_LBUTTONDBLCLK, "LeftButtonDoubleClick",
WM_RBUTTONDOWN, "RightButtonDown",
WM_RBUTTONUP, "RightButtonUp",
WM_RBUTTONDBLCLK, "RightButtonDoubleClick",
WM_MBUTTONDOWN, "MiddleButtonDown",
WM_MBUTTONUP, "MiddleButtonUp",
WM_MBUTTONDBLCLK, "MiddleButtonDoubleClick",
WM_MOUSEWHEEL, "MouseWheel",
WM_XBUTTONDOWN, "XButtonDown",
WM_XBUTTONUP, "XButtonUp",
WM_XBUTTONDBLCLK, "XButtonDoubleClick",
WM_MOUSELAST, "MouseLast",
WM_PARENTNOTIFY, "ParentNotify",
WM_ENTERMENULOOP, "EnterMenuLoop",
WM_EXITMENULOOP, "ExitMenuLoop",
WM_NEXTMENU, "NextMenu",
WM_SIZING, "Sizing",
WM_CAPTURECHANGED, "CaptureChanged",
WM_MOVING, "Moving",
WM_POWERBROADCAST, "PowerBroadcast",
WM_DEVICECHANGE, "DeviceChange",
WM_MDICREATE, "MDICreate",
WM_MDIDESTROY, "MDIDestroy",
WM_MDIACTIVATE, "MDIActivate",
WM_MDIRESTORE, "MDIRestore",
WM_MDINEXT, "MDINext",
WM_MDIMAXIMIZE, "MDIMaximize",
WM_MDITILE, "MDITitle",
WM_MDICASCADE, "MDICascade",
WM_MDIICONARRANGE, "MDIIconArrange",
WM_MDIGETACTIVE, "MDIGetActive",
WM_MDISETMENU, "MDISetMenu",
WM_ENTERSIZEMOVE, "EnterSizeMove",
WM_EXITSIZEMOVE, "ExitSizeMove",
WM_DROPFILES, "DropFiles",
WM_MDIREFRESHMENU, "MDIRefreshMenu",
WM_IME_SETCONTEXT, "IMESetContext",
WM_IME_NOTIFY, "IMENotify",
WM_IME_CONTROL, "IMEControl",
WM_IME_COMPOSITIONFULL, "IMECompositionFull",
WM_IME_SELECT, "IMESelect",
WM_IME_CHAR, "IMEChar",
WM_IME_REQUEST, "IMERequest",
WM_IME_KEYDOWN, "IMEKeyDown",
WM_IME_KEYUP, "IMEKeyUp",
WM_MOUSEHOVER, "MouseHover",
WM_MOUSELEAVE, "MouseLeave",
WM_NCMOUSEHOVER, "NCMouseHover",
WM_NCMOUSELEAVE, "NCMouseLeave",
WM_CUT, "Cut",
WM_COPY, "Copy",
WM_PASTE, "Paste",
WM_CLEAR, "Clear",
WM_UNDO, "Undo",
WM_RENDERFORMAT, "RenderFormat",
WM_RENDERALLFORMATS, "RenderAllFormats",
WM_DESTROYCLIPBOARD, "DestroyClipboard",
WM_DRAWCLIPBOARD, "DrawClipboard",
WM_PAINTCLIPBOARD, "PaintClipboard",
WM_VSCROLLCLIPBOARD, "VScrollClipboard",
WM_SIZECLIPBOARD, "SizeClipboard",
WM_ASKCBFORMATNAME, "AskCBFormatName",
WM_CHANGECBCHAIN, "ChangeCBChain",
WM_HSCROLLCLIPBOARD, "HScrollClipboard",
WM_QUERYNEWPALETTE, "QueryNewPalette",
WM_PALETTEISCHANGING, "PaletteIsChanging",
WM_PALETTECHANGED, "PaletteChanged",
WM_HOTKEY, "HotKey",
WM_PRINT, "Print",
WM_PRINTCLIENT, "PrintClient",
WM_APPCOMMAND, "AppCommand",
WM_HANDHELDFIRST, "HandHeldFirst",
WM_HANDHELDLAST, "HandHeldLast",
WM_AFXFIRST, "AFXFirst",
WM_AFXLAST, "AFXLast",
WM_PENWINFIRST, "PenWinFirst",
WM_PENWINLAST, "PenWinLast",
WM_USER, "User",
WM_APP, "App",
0x00, NULL
};
NAMETABLE SrvReqNames[] =
{
SRVREQ_NONE, "None",
SRVREQ_BUSY, "Busy",
SRVREQ_GETCLIENTINFO, "GetClientInfo",
SRVREQ_SETCLIENTINFO, "SetClientInfo",
SRVREQ_TERMINATE, "Terminate",
0x00, NULL
};
/*++
@doc INTERNAL
@func VOID | TRDebugPrint | Print to system debugger.
@parm IN LPCSTR | format | Points to the format string.
@parm ... | Arguments.
@rvalue SUCCESS | returns the number of chars stored in the buffer not
counting the terminating null characters.
@rvalue FAILURE | returns less than the length of the expected output.
--*/
int
TRDebugPrint(
IN LPCSTR format,
...
)
{
int n;
static char szMessage[256] = {0};
va_list arglist;
va_start(arglist, format);
n = wvsprintfA(szMessage, format, arglist);
va_end(arglist);
OutputDebugStringA(szMessage);
return n;
} //TRDebugPrint
/*++
@doc INTERNAL
@func PSZ | LookupName |
Look up name string of a code in the given name table.
@parm IN ULONG | Code | The given code to lookup.
@parm IN PNAMETABLE | NameTable | The name table to look into.
@rvalue SUCCESS - Returns pointer to the minor function name string.
@rvalue FAILURE - Returns "unknown".
--*/
PSZ
LookupName(
IN ULONG Code,
IN PNAMETABLE NameTable
)
{
PSZ pszName = NULL;
static char szUnknown[64];
while (NameTable->pszName != NULL)
{
if (Code == NameTable->Code)
{
pszName = NameTable->pszName;
break;
}
NameTable++;
}
if (pszName == NULL)
{
wsprintfA(szUnknown, "unknown[0x%x(%d)]", Code, Code);
pszName = szUnknown;
}
return pszName;
} //LookupName
#endif //ifdef TRDEBUG