Bug 1052395 - Improve ipc debug output for unhandled nonqueued Windows messages. r=bent

This commit is contained in:
Jim Mathies 2014-08-12 14:06:00 -05:00
parent 5f02f21733
commit 87b5b6d62d
6 changed files with 387 additions and 351 deletions

View File

@ -14,6 +14,7 @@
#include "nsServiceManagerUtils.h" #include "nsServiceManagerUtils.h"
#include "nsString.h" #include "nsString.h"
#include "nsIXULAppInfo.h" #include "nsIXULAppInfo.h"
#include "WinUtils.h"
#include "mozilla/PaintTracker.h" #include "mozilla/PaintTracker.h"
@ -169,10 +170,31 @@ static void
DumpNeuteredMessage(HWND hwnd, UINT uMsg) DumpNeuteredMessage(HWND hwnd, UINT uMsg)
{ {
#ifdef DEBUG #ifdef DEBUG
nsAutoCString log("Received \"nonqueued\" message "); nsAutoCString log("Received \"nonqueued\" ");
log.AppendInt(uMsg); // classify messages
if (uMsg < WM_USER) {
int idx = 0;
while (mozilla::widget::gAllEvents[idx].mId != (long)uMsg &&
mozilla::widget::gAllEvents[idx].mStr != nullptr) {
idx++;
}
if (mozilla::widget::gAllEvents[idx].mStr) {
log.AppendPrintf("ui message \"%s\"", mozilla::widget::gAllEvents[idx].mStr);
} else {
log.AppendPrintf("ui message (0x%X)", uMsg);
}
} else if (uMsg >= WM_USER && uMsg < WM_APP) {
log.AppendPrintf("WM_USER message (0x%X)", uMsg);
} else if (uMsg >= WM_APP && uMsg < 0xC000) {
log.AppendPrintf("WM_APP message (0x%X)", uMsg);
} else if (uMsg >= 0xC000 && uMsg < 0x10000) {
log.AppendPrintf("registered windows message (0x%X)", uMsg);
} else {
log.AppendPrintf("system message (0x%X)", uMsg);
}
log.AppendLiteral(" during a synchronous IPC message for window "); log.AppendLiteral(" during a synchronous IPC message for window ");
log.AppendInt((int64_t)hwnd); log.AppendPrintf("0x%X", hwnd);
wchar_t className[256] = { 0 }; wchar_t className[256] = { 0 };
if (GetClassNameW(hwnd, className, sizeof(className) - 1) > 0) { if (GetClassNameW(hwnd, className, sizeof(className) - 1) > 0) {

View File

@ -59,6 +59,345 @@ using namespace mozilla::gfx;
namespace mozilla { namespace mozilla {
namespace widget { namespace widget {
#define ENTRY(_msg) { #_msg, _msg }
EventMsgInfo gAllEvents[] = {
ENTRY(WM_NULL),
ENTRY(WM_CREATE),
ENTRY(WM_DESTROY),
ENTRY(WM_MOVE),
ENTRY(WM_SIZE),
ENTRY(WM_ACTIVATE),
ENTRY(WM_SETFOCUS),
ENTRY(WM_KILLFOCUS),
ENTRY(WM_ENABLE),
ENTRY(WM_SETREDRAW),
ENTRY(WM_SETTEXT),
ENTRY(WM_GETTEXT),
ENTRY(WM_GETTEXTLENGTH),
ENTRY(WM_PAINT),
ENTRY(WM_CLOSE),
ENTRY(WM_QUERYENDSESSION),
ENTRY(WM_QUIT),
ENTRY(WM_QUERYOPEN),
ENTRY(WM_ERASEBKGND),
ENTRY(WM_SYSCOLORCHANGE),
ENTRY(WM_ENDSESSION),
ENTRY(WM_SHOWWINDOW),
ENTRY(WM_SETTINGCHANGE),
ENTRY(WM_DEVMODECHANGE),
ENTRY(WM_ACTIVATEAPP),
ENTRY(WM_FONTCHANGE),
ENTRY(WM_TIMECHANGE),
ENTRY(WM_CANCELMODE),
ENTRY(WM_SETCURSOR),
ENTRY(WM_MOUSEACTIVATE),
ENTRY(WM_CHILDACTIVATE),
ENTRY(WM_QUEUESYNC),
ENTRY(WM_GETMINMAXINFO),
ENTRY(WM_PAINTICON),
ENTRY(WM_ICONERASEBKGND),
ENTRY(WM_NEXTDLGCTL),
ENTRY(WM_SPOOLERSTATUS),
ENTRY(WM_DRAWITEM),
ENTRY(WM_MEASUREITEM),
ENTRY(WM_DELETEITEM),
ENTRY(WM_VKEYTOITEM),
ENTRY(WM_CHARTOITEM),
ENTRY(WM_SETFONT),
ENTRY(WM_GETFONT),
ENTRY(WM_SETHOTKEY),
ENTRY(WM_GETHOTKEY),
ENTRY(WM_QUERYDRAGICON),
ENTRY(WM_COMPAREITEM),
ENTRY(WM_GETOBJECT),
ENTRY(WM_COMPACTING),
ENTRY(WM_COMMNOTIFY),
ENTRY(WM_WINDOWPOSCHANGING),
ENTRY(WM_WINDOWPOSCHANGED),
ENTRY(WM_POWER),
ENTRY(WM_COPYDATA),
ENTRY(WM_CANCELJOURNAL),
ENTRY(WM_NOTIFY),
ENTRY(WM_INPUTLANGCHANGEREQUEST),
ENTRY(WM_INPUTLANGCHANGE),
ENTRY(WM_TCARD),
ENTRY(WM_HELP),
ENTRY(WM_USERCHANGED),
ENTRY(WM_NOTIFYFORMAT),
ENTRY(WM_CONTEXTMENU),
ENTRY(WM_STYLECHANGING),
ENTRY(WM_STYLECHANGED),
ENTRY(WM_DISPLAYCHANGE),
ENTRY(WM_GETICON),
ENTRY(WM_SETICON),
ENTRY(WM_NCCREATE),
ENTRY(WM_NCDESTROY),
ENTRY(WM_NCCALCSIZE),
ENTRY(WM_NCHITTEST),
ENTRY(WM_NCPAINT),
ENTRY(WM_NCACTIVATE),
ENTRY(WM_GETDLGCODE),
ENTRY(WM_SYNCPAINT),
ENTRY(WM_NCMOUSEMOVE),
ENTRY(WM_NCLBUTTONDOWN),
ENTRY(WM_NCLBUTTONUP),
ENTRY(WM_NCLBUTTONDBLCLK),
ENTRY(WM_NCRBUTTONDOWN),
ENTRY(WM_NCRBUTTONUP),
ENTRY(WM_NCRBUTTONDBLCLK),
ENTRY(WM_NCMBUTTONDOWN),
ENTRY(WM_NCMBUTTONUP),
ENTRY(WM_NCMBUTTONDBLCLK),
ENTRY(EM_GETSEL),
ENTRY(EM_SETSEL),
ENTRY(EM_GETRECT),
ENTRY(EM_SETRECT),
ENTRY(EM_SETRECTNP),
ENTRY(EM_SCROLL),
ENTRY(EM_LINESCROLL),
ENTRY(EM_SCROLLCARET),
ENTRY(EM_GETMODIFY),
ENTRY(EM_SETMODIFY),
ENTRY(EM_GETLINECOUNT),
ENTRY(EM_LINEINDEX),
ENTRY(EM_SETHANDLE),
ENTRY(EM_GETHANDLE),
ENTRY(EM_GETTHUMB),
ENTRY(EM_LINELENGTH),
ENTRY(EM_REPLACESEL),
ENTRY(EM_GETLINE),
ENTRY(EM_LIMITTEXT),
ENTRY(EM_CANUNDO),
ENTRY(EM_UNDO),
ENTRY(EM_FMTLINES),
ENTRY(EM_LINEFROMCHAR),
ENTRY(EM_SETTABSTOPS),
ENTRY(EM_SETPASSWORDCHAR),
ENTRY(EM_EMPTYUNDOBUFFER),
ENTRY(EM_GETFIRSTVISIBLELINE),
ENTRY(EM_SETREADONLY),
ENTRY(EM_SETWORDBREAKPROC),
ENTRY(EM_GETWORDBREAKPROC),
ENTRY(EM_GETPASSWORDCHAR),
ENTRY(EM_SETMARGINS),
ENTRY(EM_GETMARGINS),
ENTRY(EM_GETLIMITTEXT),
ENTRY(EM_POSFROMCHAR),
ENTRY(EM_CHARFROMPOS),
ENTRY(EM_SETIMESTATUS),
ENTRY(EM_GETIMESTATUS),
ENTRY(SBM_SETPOS),
ENTRY(SBM_GETPOS),
ENTRY(SBM_SETRANGE),
ENTRY(SBM_SETRANGEREDRAW),
ENTRY(SBM_GETRANGE),
ENTRY(SBM_ENABLE_ARROWS),
ENTRY(SBM_SETSCROLLINFO),
ENTRY(SBM_GETSCROLLINFO),
ENTRY(WM_KEYDOWN),
ENTRY(WM_KEYUP),
ENTRY(WM_CHAR),
ENTRY(WM_DEADCHAR),
ENTRY(WM_SYSKEYDOWN),
ENTRY(WM_SYSKEYUP),
ENTRY(WM_SYSCHAR),
ENTRY(WM_SYSDEADCHAR),
ENTRY(WM_KEYLAST),
ENTRY(WM_IME_STARTCOMPOSITION),
ENTRY(WM_IME_ENDCOMPOSITION),
ENTRY(WM_IME_COMPOSITION),
ENTRY(WM_INITDIALOG),
ENTRY(WM_COMMAND),
ENTRY(WM_SYSCOMMAND),
ENTRY(WM_TIMER),
ENTRY(WM_HSCROLL),
ENTRY(WM_VSCROLL),
ENTRY(WM_INITMENU),
ENTRY(WM_INITMENUPOPUP),
ENTRY(WM_MENUSELECT),
ENTRY(WM_MENUCHAR),
ENTRY(WM_ENTERIDLE),
ENTRY(WM_MENURBUTTONUP),
ENTRY(WM_MENUDRAG),
ENTRY(WM_MENUGETOBJECT),
ENTRY(WM_UNINITMENUPOPUP),
ENTRY(WM_MENUCOMMAND),
ENTRY(WM_CHANGEUISTATE),
ENTRY(WM_UPDATEUISTATE),
ENTRY(WM_CTLCOLORMSGBOX),
ENTRY(WM_CTLCOLOREDIT),
ENTRY(WM_CTLCOLORLISTBOX),
ENTRY(WM_CTLCOLORBTN),
ENTRY(WM_CTLCOLORDLG),
ENTRY(WM_CTLCOLORSCROLLBAR),
ENTRY(WM_CTLCOLORSTATIC),
ENTRY(CB_GETEDITSEL),
ENTRY(CB_LIMITTEXT),
ENTRY(CB_SETEDITSEL),
ENTRY(CB_ADDSTRING),
ENTRY(CB_DELETESTRING),
ENTRY(CB_DIR),
ENTRY(CB_GETCOUNT),
ENTRY(CB_GETCURSEL),
ENTRY(CB_GETLBTEXT),
ENTRY(CB_GETLBTEXTLEN),
ENTRY(CB_INSERTSTRING),
ENTRY(CB_RESETCONTENT),
ENTRY(CB_FINDSTRING),
ENTRY(CB_SELECTSTRING),
ENTRY(CB_SETCURSEL),
ENTRY(CB_SHOWDROPDOWN),
ENTRY(CB_GETITEMDATA),
ENTRY(CB_SETITEMDATA),
ENTRY(CB_GETDROPPEDCONTROLRECT),
ENTRY(CB_SETITEMHEIGHT),
ENTRY(CB_GETITEMHEIGHT),
ENTRY(CB_SETEXTENDEDUI),
ENTRY(CB_GETEXTENDEDUI),
ENTRY(CB_GETDROPPEDSTATE),
ENTRY(CB_FINDSTRINGEXACT),
ENTRY(CB_SETLOCALE),
ENTRY(CB_GETLOCALE),
ENTRY(CB_GETTOPINDEX),
ENTRY(CB_SETTOPINDEX),
ENTRY(CB_GETHORIZONTALEXTENT),
ENTRY(CB_SETHORIZONTALEXTENT),
ENTRY(CB_GETDROPPEDWIDTH),
ENTRY(CB_SETDROPPEDWIDTH),
ENTRY(CB_INITSTORAGE),
ENTRY(CB_MSGMAX),
ENTRY(LB_ADDSTRING),
ENTRY(LB_INSERTSTRING),
ENTRY(LB_DELETESTRING),
ENTRY(LB_SELITEMRANGEEX),
ENTRY(LB_RESETCONTENT),
ENTRY(LB_SETSEL),
ENTRY(LB_SETCURSEL),
ENTRY(LB_GETSEL),
ENTRY(LB_GETCURSEL),
ENTRY(LB_GETTEXT),
ENTRY(LB_GETTEXTLEN),
ENTRY(LB_GETCOUNT),
ENTRY(LB_SELECTSTRING),
ENTRY(LB_DIR),
ENTRY(LB_GETTOPINDEX),
ENTRY(LB_FINDSTRING),
ENTRY(LB_GETSELCOUNT),
ENTRY(LB_GETSELITEMS),
ENTRY(LB_SETTABSTOPS),
ENTRY(LB_GETHORIZONTALEXTENT),
ENTRY(LB_SETHORIZONTALEXTENT),
ENTRY(LB_SETCOLUMNWIDTH),
ENTRY(LB_ADDFILE),
ENTRY(LB_SETTOPINDEX),
ENTRY(LB_GETITEMRECT),
ENTRY(LB_GETITEMDATA),
ENTRY(LB_SETITEMDATA),
ENTRY(LB_SELITEMRANGE),
ENTRY(LB_SETANCHORINDEX),
ENTRY(LB_GETANCHORINDEX),
ENTRY(LB_SETCARETINDEX),
ENTRY(LB_GETCARETINDEX),
ENTRY(LB_SETITEMHEIGHT),
ENTRY(LB_GETITEMHEIGHT),
ENTRY(LB_FINDSTRINGEXACT),
ENTRY(LB_SETLOCALE),
ENTRY(LB_GETLOCALE),
ENTRY(LB_SETCOUNT),
ENTRY(LB_INITSTORAGE),
ENTRY(LB_ITEMFROMPOINT),
ENTRY(LB_MSGMAX),
ENTRY(WM_MOUSEMOVE),
ENTRY(WM_LBUTTONDOWN),
ENTRY(WM_LBUTTONUP),
ENTRY(WM_LBUTTONDBLCLK),
ENTRY(WM_RBUTTONDOWN),
ENTRY(WM_RBUTTONUP),
ENTRY(WM_RBUTTONDBLCLK),
ENTRY(WM_MBUTTONDOWN),
ENTRY(WM_MBUTTONUP),
ENTRY(WM_MBUTTONDBLCLK),
ENTRY(WM_MOUSEWHEEL),
ENTRY(WM_MOUSEHWHEEL),
ENTRY(WM_PARENTNOTIFY),
ENTRY(WM_ENTERMENULOOP),
ENTRY(WM_EXITMENULOOP),
ENTRY(WM_NEXTMENU),
ENTRY(WM_SIZING),
ENTRY(WM_CAPTURECHANGED),
ENTRY(WM_MOVING),
ENTRY(WM_POWERBROADCAST),
ENTRY(WM_DEVICECHANGE),
ENTRY(WM_MDICREATE),
ENTRY(WM_MDIDESTROY),
ENTRY(WM_MDIACTIVATE),
ENTRY(WM_MDIRESTORE),
ENTRY(WM_MDINEXT),
ENTRY(WM_MDIMAXIMIZE),
ENTRY(WM_MDITILE),
ENTRY(WM_MDICASCADE),
ENTRY(WM_MDIICONARRANGE),
ENTRY(WM_MDIGETACTIVE),
ENTRY(WM_MDISETMENU),
ENTRY(WM_ENTERSIZEMOVE),
ENTRY(WM_EXITSIZEMOVE),
ENTRY(WM_DROPFILES),
ENTRY(WM_MDIREFRESHMENU),
ENTRY(WM_IME_SETCONTEXT),
ENTRY(WM_IME_NOTIFY),
ENTRY(WM_IME_CONTROL),
ENTRY(WM_IME_COMPOSITIONFULL),
ENTRY(WM_IME_SELECT),
ENTRY(WM_IME_CHAR),
ENTRY(WM_IME_REQUEST),
ENTRY(WM_IME_KEYDOWN),
ENTRY(WM_IME_KEYUP),
ENTRY(WM_NCMOUSEHOVER),
ENTRY(WM_MOUSEHOVER),
ENTRY(WM_MOUSELEAVE),
ENTRY(WM_CUT),
ENTRY(WM_COPY),
ENTRY(WM_PASTE),
ENTRY(WM_CLEAR),
ENTRY(WM_UNDO),
ENTRY(WM_RENDERFORMAT),
ENTRY(WM_RENDERALLFORMATS),
ENTRY(WM_DESTROYCLIPBOARD),
ENTRY(WM_DRAWCLIPBOARD),
ENTRY(WM_PAINTCLIPBOARD),
ENTRY(WM_VSCROLLCLIPBOARD),
ENTRY(WM_SIZECLIPBOARD),
ENTRY(WM_ASKCBFORMATNAME),
ENTRY(WM_CHANGECBCHAIN),
ENTRY(WM_HSCROLLCLIPBOARD),
ENTRY(WM_QUERYNEWPALETTE),
ENTRY(WM_PALETTEISCHANGING),
ENTRY(WM_PALETTECHANGED),
ENTRY(WM_HOTKEY),
ENTRY(WM_PRINT),
ENTRY(WM_PRINTCLIENT),
ENTRY(WM_THEMECHANGED),
ENTRY(WM_HANDHELDFIRST),
ENTRY(WM_HANDHELDLAST),
ENTRY(WM_AFXFIRST),
ENTRY(WM_AFXLAST),
ENTRY(WM_PENWINFIRST),
ENTRY(WM_PENWINLAST),
ENTRY(WM_APP),
ENTRY(WM_DWMCOMPOSITIONCHANGED),
ENTRY(WM_DWMNCRENDERINGCHANGED),
ENTRY(WM_DWMCOLORIZATIONCOLORCHANGED),
ENTRY(WM_DWMWINDOWMAXIMIZEDCHANGE),
ENTRY(WM_DWMSENDICONICTHUMBNAIL),
ENTRY(WM_DWMSENDICONICLIVEPREVIEWBITMAP),
ENTRY(WM_TABLET_QUERYSYSTEMGESTURESTATUS),
ENTRY(WM_GESTURE),
ENTRY(WM_GESTURENOTIFY),
ENTRY(WM_GETTITLEBARINFOEX),
{nullptr, 0x0}
};
#undef ENTRY
#ifdef MOZ_PLACES #ifdef MOZ_PLACES
NS_IMPL_ISUPPORTS(myDownloadObserver, nsIDownloadObserver) NS_IMPL_ISUPPORTS(myDownloadObserver, nsIDownloadObserver)

View File

@ -72,6 +72,13 @@ struct nsIntRect;
namespace mozilla { namespace mozilla {
namespace widget { namespace widget {
// Windows message debugging data
typedef struct {
const char * mStr;
UINT mId;
} EventMsgInfo;
extern EventMsgInfo gAllEvents[];
// More complete QS definitions for MsgWaitForMultipleObjects() and // More complete QS definitions for MsgWaitForMultipleObjects() and
// GetQueueStatus() that include newer win8 specific defines. // GetQueueStatus() that include newer win8 specific defines.

View File

@ -8,18 +8,14 @@
*/ */
#include "nsWindowDbg.h" #include "nsWindowDbg.h"
#include "WinUtils.h"
using namespace mozilla::widget;
#ifdef PR_LOGGING #ifdef PR_LOGGING
extern PRLogModuleInfo* gWindowsLog; extern PRLogModuleInfo* gWindowsLog;
#endif #endif
#if defined(POPUP_ROLLUP_DEBUG_OUTPUT) || defined(EVENT_DEBUG_OUTPUT) || 1
typedef struct {
const char * mStr;
long mId;
} EventMsgInfo;
#if defined(POPUP_ROLLUP_DEBUG_OUTPUT) #if defined(POPUP_ROLLUP_DEBUG_OUTPUT)
MSGFEventMsgInfo gMSGFEvents[] = { MSGFEventMsgInfo gMSGFEvents[] = {
"MSGF_DIALOGBOX", 0, "MSGF_DIALOGBOX", 0,
@ -32,343 +28,6 @@ MSGFEventMsgInfo gMSGFEvents[] = {
nullptr, 0}; nullptr, 0};
#endif #endif
EventMsgInfo gAllEvents[] = {
{"WM_NULL", 0x0000},
{"WM_CREATE", 0x0001},
{"WM_DESTROY", 0x0002},
{"WM_MOVE", 0x0003},
{"WM_SIZE", 0x0005},
{"WM_ACTIVATE", 0x0006},
{"WM_SETFOCUS", 0x0007},
{"WM_KILLFOCUS", 0x0008},
{"WM_ENABLE", 0x000A},
{"WM_SETREDRAW", 0x000B},
{"WM_SETTEXT", 0x000C},
{"WM_GETTEXT", 0x000D},
{"WM_GETTEXTLENGTH", 0x000E},
{"WM_PAINT", 0x000F},
{"WM_CLOSE", 0x0010},
{"WM_QUERYENDSESSION", 0x0011},
{"WM_QUIT", 0x0012},
{"WM_QUERYOPEN", 0x0013},
{"WM_ERASEBKGND", 0x0014},
{"WM_SYSCOLORCHANGE", 0x0015},
{"WM_ENDSESSION", 0x0016},
{"WM_SHOWWINDOW", 0x0018},
{"WM_SETTINGCHANGE", 0x001A},
{"WM_DEVMODECHANGE", 0x001B},
{"WM_ACTIVATEAPP", 0x001C},
{"WM_FONTCHANGE", 0x001D},
{"WM_TIMECHANGE", 0x001E},
{"WM_CANCELMODE", 0x001F},
{"WM_SETCURSOR", 0x0020},
{"WM_MOUSEACTIVATE", 0x0021},
{"WM_CHILDACTIVATE", 0x0022},
{"WM_QUEUESYNC", 0x0023},
{"WM_GETMINMAXINFO", 0x0024},
{"WM_PAINTICON", 0x0026},
{"WM_ICONERASEBKGND", 0x0027},
{"WM_NEXTDLGCTL", 0x0028},
{"WM_SPOOLERSTATUS", 0x002A},
{"WM_DRAWITEM", 0x002B},
{"WM_MEASUREITEM", 0x002C},
{"WM_DELETEITEM", 0x002D},
{"WM_VKEYTOITEM", 0x002E},
{"WM_CHARTOITEM", 0x002F},
{"WM_SETFONT", 0x0030},
{"WM_GETFONT", 0x0031},
{"WM_SETHOTKEY", 0x0032},
{"WM_GETHOTKEY", 0x0033},
{"WM_QUERYDRAGICON", 0x0037},
{"WM_COMPAREITEM", 0x0039},
{"WM_GETOBJECT", 0x003D},
{"WM_COMPACTING", 0x0041},
{"WM_COMMNOTIFY", 0x0044},
{"WM_WINDOWPOSCHANGING", 0x0046},
{"WM_WINDOWPOSCHANGED", 0x0047},
{"WM_POWER", 0x0048},
{"WM_COPYDATA", 0x004A},
{"WM_CANCELJOURNAL", 0x004B},
{"WM_NOTIFY", 0x004E},
{"WM_INPUTLANGCHANGEREQUEST", 0x0050},
{"WM_INPUTLANGCHANGE", 0x0051},
{"WM_TCARD", 0x0052},
{"WM_HELP", 0x0053},
{"WM_USERCHANGED", 0x0054},
{"WM_NOTIFYFORMAT", 0x0055},
{"WM_CONTEXTMENU", 0x007B},
{"WM_STYLECHANGING", 0x007C},
{"WM_STYLECHANGED", 0x007D},
{"WM_DISPLAYCHANGE", 0x007E},
{"WM_GETICON", 0x007F},
{"WM_SETICON", 0x0080},
{"WM_NCCREATE", 0x0081},
{"WM_NCDESTROY", 0x0082},
{"WM_NCCALCSIZE", 0x0083},
{"WM_NCHITTEST", 0x0084},
{"WM_NCPAINT", 0x0085},
{"WM_NCACTIVATE", 0x0086},
{"WM_GETDLGCODE", 0x0087},
{"WM_SYNCPAINT", 0x0088},
{"WM_NCMOUSEMOVE", 0x00A0},
{"WM_NCLBUTTONDOWN", 0x00A1},
{"WM_NCLBUTTONUP", 0x00A2},
{"WM_NCLBUTTONDBLCLK", 0x00A3},
{"WM_NCRBUTTONDOWN", 0x00A4},
{"WM_NCRBUTTONUP", 0x00A5},
{"WM_NCRBUTTONDBLCLK", 0x00A6},
{"WM_NCMBUTTONDOWN", 0x00A7},
{"WM_NCMBUTTONUP", 0x00A8},
{"WM_NCMBUTTONDBLCLK", 0x00A9},
{"EM_GETSEL", 0x00B0},
{"EM_SETSEL", 0x00B1},
{"EM_GETRECT", 0x00B2},
{"EM_SETRECT", 0x00B3},
{"EM_SETRECTNP", 0x00B4},
{"EM_SCROLL", 0x00B5},
{"EM_LINESCROLL", 0x00B6},
{"EM_SCROLLCARET", 0x00B7},
{"EM_GETMODIFY", 0x00B8},
{"EM_SETMODIFY", 0x00B9},
{"EM_GETLINECOUNT", 0x00BA},
{"EM_LINEINDEX", 0x00BB},
{"EM_SETHANDLE", 0x00BC},
{"EM_GETHANDLE", 0x00BD},
{"EM_GETTHUMB", 0x00BE},
{"EM_LINELENGTH", 0x00C1},
{"EM_REPLACESEL", 0x00C2},
{"EM_GETLINE", 0x00C4},
{"EM_LIMITTEXT", 0x00C5},
{"EM_CANUNDO", 0x00C6},
{"EM_UNDO", 0x00C7},
{"EM_FMTLINES", 0x00C8},
{"EM_LINEFROMCHAR", 0x00C9},
{"EM_SETTABSTOPS", 0x00CB},
{"EM_SETPASSWORDCHAR", 0x00CC},
{"EM_EMPTYUNDOBUFFER", 0x00CD},
{"EM_GETFIRSTVISIBLELINE", 0x00CE},
{"EM_SETREADONLY", 0x00CF},
{"EM_SETWORDBREAKPROC", 0x00D0},
{"EM_GETWORDBREAKPROC", 0x00D1},
{"EM_GETPASSWORDCHAR", 0x00D2},
{"EM_SETMARGINS", 0x00D3},
{"EM_GETMARGINS", 0x00D4},
{"EM_GETLIMITTEXT", 0x00D5},
{"EM_POSFROMCHAR", 0x00D6},
{"EM_CHARFROMPOS", 0x00D7},
{"EM_SETIMESTATUS", 0x00D8},
{"EM_GETIMESTATUS", 0x00D9},
{"SBM_SETPOS", 0x00E0},
{"SBM_GETPOS", 0x00E1},
{"SBM_SETRANGE", 0x00E2},
{"SBM_SETRANGEREDRAW", 0x00E6},
{"SBM_GETRANGE", 0x00E3},
{"SBM_ENABLE_ARROWS", 0x00E4},
{"SBM_SETSCROLLINFO", 0x00E9},
{"SBM_GETSCROLLINFO", 0x00EA},
{"WM_KEYDOWN", 0x0100},
{"WM_KEYUP", 0x0101},
{"WM_CHAR", 0x0102},
{"WM_DEADCHAR", 0x0103},
{"WM_SYSKEYDOWN", 0x0104},
{"WM_SYSKEYUP", 0x0105},
{"WM_SYSCHAR", 0x0106},
{"WM_SYSDEADCHAR", 0x0107},
{"WM_KEYLAST", 0x0108},
{"WM_IME_STARTCOMPOSITION", 0x010D},
{"WM_IME_ENDCOMPOSITION", 0x010E},
{"WM_IME_COMPOSITION", 0x010F},
{"WM_INITDIALOG", 0x0110},
{"WM_COMMAND", 0x0111},
{"WM_SYSCOMMAND", 0x0112},
{"WM_TIMER", 0x0113},
{"WM_HSCROLL", 0x0114},
{"WM_VSCROLL", 0x0115},
{"WM_INITMENU", 0x0116},
{"WM_INITMENUPOPUP", 0x0117},
{"WM_MENUSELECT", 0x011F},
{"WM_MENUCHAR", 0x0120},
{"WM_ENTERIDLE", 0x0121},
{"WM_MENURBUTTONUP", 0x0122},
{"WM_MENUDRAG", 0x0123},
{"WM_MENUGETOBJECT", 0x0124},
{"WM_UNINITMENUPOPUP", 0x0125},
{"WM_MENUCOMMAND", 0x0126},
{"WM_CHANGEUISTATE", 0x0127},
{"WM_UPDATEUISTATE", 0x0128},
{"WM_CTLCOLORMSGBOX", 0x0132},
{"WM_CTLCOLOREDIT", 0x0133},
{"WM_CTLCOLORLISTBOX", 0x0134},
{"WM_CTLCOLORBTN", 0x0135},
{"WM_CTLCOLORDLG", 0x0136},
{"WM_CTLCOLORSCROLLBAR", 0x0137},
{"WM_CTLCOLORSTATIC", 0x0138},
{"CB_GETEDITSEL", 0x0140},
{"CB_LIMITTEXT", 0x0141},
{"CB_SETEDITSEL", 0x0142},
{"CB_ADDSTRING", 0x0143},
{"CB_DELETESTRING", 0x0144},
{"CB_DIR", 0x0145},
{"CB_GETCOUNT", 0x0146},
{"CB_GETCURSEL", 0x0147},
{"CB_GETLBTEXT", 0x0148},
{"CB_GETLBTEXTLEN", 0x0149},
{"CB_INSERTSTRING", 0x014A},
{"CB_RESETCONTENT", 0x014B},
{"CB_FINDSTRING", 0x014C},
{"CB_SELECTSTRING", 0x014D},
{"CB_SETCURSEL", 0x014E},
{"CB_SHOWDROPDOWN", 0x014F},
{"CB_GETITEMDATA", 0x0150},
{"CB_SETITEMDATA", 0x0151},
{"CB_GETDROPPEDCONTROLRECT", 0x0152},
{"CB_SETITEMHEIGHT", 0x0153},
{"CB_GETITEMHEIGHT", 0x0154},
{"CB_SETEXTENDEDUI", 0x0155},
{"CB_GETEXTENDEDUI", 0x0156},
{"CB_GETDROPPEDSTATE", 0x0157},
{"CB_FINDSTRINGEXACT", 0x0158},
{"CB_SETLOCALE", 0x0159},
{"CB_GETLOCALE", 0x015A},
{"CB_GETTOPINDEX", 0x015b},
{"CB_SETTOPINDEX", 0x015c},
{"CB_GETHORIZONTALEXTENT", 0x015d},
{"CB_SETHORIZONTALEXTENT", 0x015e},
{"CB_GETDROPPEDWIDTH", 0x015f},
{"CB_SETDROPPEDWIDTH", 0x0160},
{"CB_INITSTORAGE", 0x0161},
{"CB_MSGMAX", 0x0162},
{"LB_ADDSTRING", 0x0180},
{"LB_INSERTSTRING", 0x0181},
{"LB_DELETESTRING", 0x0182},
{"LB_SELITEMRANGEEX", 0x0183},
{"LB_RESETCONTENT", 0x0184},
{"LB_SETSEL", 0x0185},
{"LB_SETCURSEL", 0x0186},
{"LB_GETSEL", 0x0187},
{"LB_GETCURSEL", 0x0188},
{"LB_GETTEXT", 0x0189},
{"LB_GETTEXTLEN", 0x018A},
{"LB_GETCOUNT", 0x018B},
{"LB_SELECTSTRING", 0x018C},
{"LB_DIR", 0x018D},
{"LB_GETTOPINDEX", 0x018E},
{"LB_FINDSTRING", 0x018F},
{"LB_GETSELCOUNT", 0x0190},
{"LB_GETSELITEMS", 0x0191},
{"LB_SETTABSTOPS", 0x0192},
{"LB_GETHORIZONTALEXTENT", 0x0193},
{"LB_SETHORIZONTALEXTENT", 0x0194},
{"LB_SETCOLUMNWIDTH", 0x0195},
{"LB_ADDFILE", 0x0196},
{"LB_SETTOPINDEX", 0x0197},
{"LB_GETITEMRECT", 0x0198},
{"LB_GETITEMDATA", 0x0199},
{"LB_SETITEMDATA", 0x019A},
{"LB_SELITEMRANGE", 0x019B},
{"LB_SETANCHORINDEX", 0x019C},
{"LB_GETANCHORINDEX", 0x019D},
{"LB_SETCARETINDEX", 0x019E},
{"LB_GETCARETINDEX", 0x019F},
{"LB_SETITEMHEIGHT", 0x01A0},
{"LB_GETITEMHEIGHT", 0x01A1},
{"LB_FINDSTRINGEXACT", 0x01A2},
{"LB_SETLOCALE", 0x01A5},
{"LB_GETLOCALE", 0x01A6},
{"LB_SETCOUNT", 0x01A7},
{"LB_INITSTORAGE", 0x01A8},
{"LB_ITEMFROMPOINT", 0x01A9},
{"LB_MSGMAX", 0x01B0},
{"WM_MOUSEMOVE", 0x0200},
{"WM_LBUTTONDOWN", 0x0201},
{"WM_LBUTTONUP", 0x0202},
{"WM_LBUTTONDBLCLK", 0x0203},
{"WM_RBUTTONDOWN", 0x0204},
{"WM_RBUTTONUP", 0x0205},
{"WM_RBUTTONDBLCLK", 0x0206},
{"WM_MBUTTONDOWN", 0x0207},
{"WM_MBUTTONUP", 0x0208},
{"WM_MBUTTONDBLCLK", 0x0209},
{"WM_MOUSEWHEEL", 0x020A},
{"WM_MOUSEHWHEEL", 0x020E},
{"WM_PARENTNOTIFY", 0x0210},
{"WM_ENTERMENULOOP", 0x0211},
{"WM_EXITMENULOOP", 0x0212},
{"WM_NEXTMENU", 0x0213},
{"WM_SIZING", 0x0214},
{"WM_CAPTURECHANGED", 0x0215},
{"WM_MOVING", 0x0216},
{"WM_POWERBROADCAST", 0x0218},
{"WM_DEVICECHANGE", 0x0219},
{"WM_MDICREATE", 0x0220},
{"WM_MDIDESTROY", 0x0221},
{"WM_MDIACTIVATE", 0x0222},
{"WM_MDIRESTORE", 0x0223},
{"WM_MDINEXT", 0x0224},
{"WM_MDIMAXIMIZE", 0x0225},
{"WM_MDITILE", 0x0226},
{"WM_MDICASCADE", 0x0227},
{"WM_MDIICONARRANGE", 0x0228},
{"WM_MDIGETACTIVE", 0x0229},
{"WM_MDISETMENU", 0x0230},
{"WM_ENTERSIZEMOVE", 0x0231},
{"WM_EXITSIZEMOVE", 0x0232},
{"WM_DROPFILES", 0x0233},
{"WM_MDIREFRESHMENU", 0x0234},
{"WM_IME_SETCONTEXT", 0x0281},
{"WM_IME_NOTIFY", 0x0282},
{"WM_IME_CONTROL", 0x0283},
{"WM_IME_COMPOSITIONFULL", 0x0284},
{"WM_IME_SELECT", 0x0285},
{"WM_IME_CHAR", 0x0286},
{"WM_IME_REQUEST", 0x0288},
{"WM_IME_KEYDOWN", 0x0290},
{"WM_IME_KEYUP", 0x0291},
{"WM_NCMOUSEHOVER", 0x02A0},
{"WM_MOUSEHOVER", 0x02A1},
{"WM_MOUSELEAVE", 0x02A3},
{"WM_CUT", 0x0300},
{"WM_COPY", 0x0301},
{"WM_PASTE", 0x0302},
{"WM_CLEAR", 0x0303},
{"WM_UNDO", 0x0304},
{"WM_RENDERFORMAT", 0x0305},
{"WM_RENDERALLFORMATS", 0x0306},
{"WM_DESTROYCLIPBOARD", 0x0307},
{"WM_DRAWCLIPBOARD", 0x0308},
{"WM_PAINTCLIPBOARD", 0x0309},
{"WM_VSCROLLCLIPBOARD", 0x030A},
{"WM_SIZECLIPBOARD", 0x030B},
{"WM_ASKCBFORMATNAME", 0x030C},
{"WM_CHANGECBCHAIN", 0x030D},
{"WM_HSCROLLCLIPBOARD", 0x030E},
{"WM_QUERYNEWPALETTE", 0x030F},
{"WM_PALETTEISCHANGING", 0x0310},
{"WM_PALETTECHANGED", 0x0311},
{"WM_HOTKEY", 0x0312},
{"WM_PRINT", 0x0317},
{"WM_PRINTCLIENT", 0x0318},
{"WM_THEMECHANGED", 0x031A},
{"WM_HANDHELDFIRST", 0x0358},
{"WM_HANDHELDLAST", 0x035F},
{"WM_AFXFIRST", 0x0360},
{"WM_AFXLAST", 0x037F},
{"WM_PENWINFIRST", 0x0380},
{"WM_PENWINLAST", 0x038F},
{"WM_APP", 0x8000},
{"WM_DWMCOMPOSITIONCHANGED", 0x031E},
{"WM_DWMNCRENDERINGCHANGED", 0x031F},
{"WM_DWMCOLORIZATIONCOLORCHANGED", 0x0320},
{"WM_DWMWINDOWMAXIMIZEDCHANGE", 0x0321},
{"WM_DWMSENDICONICTHUMBNAIL", 0x0323},
{"WM_DWMSENDICONICLIVEPREVIEWBITMAP", 0x0326},
{"WM_TABLET_QUERYSYSTEMGESTURESTATUS", 0x02CC},
{"WM_GESTURE", 0x0119},
{"WM_GESTURENOTIFY", 0x011A},
{"WM_GETTITLEBARINFOEX", 0x033F},
{nullptr, 0x0}
};
static long gEventCounter = 0; static long gEventCounter = 0;
static long gLastEventMsg = 0; static long gLastEventMsg = 0;
@ -388,8 +47,6 @@ void PrintEvent(UINT msg, bool aShowAllEvents, bool aShowMouseMoves)
} }
} }
#endif // defined(POPUP_ROLLUP_DEBUG_OUTPUT) || defined(EVENT_DEBUG_OUTPUT)
#ifdef DEBUG #ifdef DEBUG
void DDError(const char *msg, HRESULT hr) void DDError(const char *msg, HRESULT hr)
{ {

View File

@ -34,9 +34,7 @@
#define SHOW_MOUSEMOVE_EVENTS false #define SHOW_MOUSEMOVE_EVENTS false
#endif // defined(EVENT_DEBUG_OUTPUT) #endif // defined(EVENT_DEBUG_OUTPUT)
#if defined(POPUP_ROLLUP_DEBUG_OUTPUT) || defined(EVENT_DEBUG_OUTPUT) || 1
void PrintEvent(UINT msg, bool aShowAllEvents, bool aShowMouseMoves); void PrintEvent(UINT msg, bool aShowAllEvents, bool aShowMouseMoves);
#endif // defined(POPUP_ROLLUP_DEBUG_OUTPUT) || defined(EVENT_DEBUG_OUTPUT)
#if defined(POPUP_ROLLUP_DEBUG_OUTPUT) #if defined(POPUP_ROLLUP_DEBUG_OUTPUT)
typedef struct { typedef struct {

View File

@ -90,6 +90,19 @@
#define MAPVK_VK_TO_VSC_EX 4 #define MAPVK_VK_TO_VSC_EX 4
#endif #endif
#ifndef WM_DWMCOMPOSITIONCHANGED
#define WM_DWMCOMPOSITIONCHANGED 0x031E
#endif
#ifndef WM_DWMNCRENDERINGCHANGED
#define WM_DWMNCRENDERINGCHANGED 0x031F
#endif
#ifndef WM_DWMCOLORIZATIONCOLORCHANGED
#define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320
#endif
#ifndef WM_DWMWINDOWMAXIMIZEDCHANGE
#define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321
#endif
// ConstrainPosition window positioning slop value // ConstrainPosition window positioning slop value
#define kWindowPositionSlop 20 #define kWindowPositionSlop 20