summaryrefslogtreecommitdiff
path: root/frontends/windows/windbg.c
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/windows/windbg.c')
-rw-r--r--frontends/windows/windbg.c663
1 files changed, 663 insertions, 0 deletions
diff --git a/frontends/windows/windbg.c b/frontends/windows/windbg.c
new file mode 100644
index 000000000..ccbecc31e
--- /dev/null
+++ b/frontends/windows/windbg.c
@@ -0,0 +1,663 @@
+/*
+ * Copyright 2011 Vincent Sanders <vince@netsurf-browser.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <windows.h>
+#include <stdio.h>
+
+#include "windbg.h"
+
+const char *msg_num_to_name(int msg)
+{
+ static char str[256];
+
+ switch (msg) {
+ case 32768:
+ return "WM_APP";
+
+ case 6:
+ return "WM_ACTIVATE ";
+
+ case 28:
+ return "WM_ACTIVATEAPP ";
+
+ case 864:
+ return "WM_AFXFIRST ";
+
+ case 895:
+ return "WM_AFXLAST ";
+
+ case 780:
+ return "WM_ASKCBFORMATNAME ";
+
+ case 75:
+ return "WM_CANCELJOURNAL ";
+
+ case 31:
+ return "WM_CANCELMODE ";
+
+ case 533:
+ return "WM_CAPTURECHANGED ";
+
+ case 781:
+ return "WM_CHANGECBCHAIN ";
+
+ case 258:
+ return "WM_CHAR ";
+
+ case 47:
+ return "WM_CHARTOITEM ";
+
+ case 34:
+ return "WM_CHILDACTIVATE ";
+
+ case 771:
+ return "WM_CLEAR ";
+
+ case 16:
+ return "WM_CLOSE ";
+
+ case 273:
+ return "WM_COMMAND ";
+
+ case 68:
+ return "WM_COMMNOTIFY ";
+
+ case 65:
+ return "WM_COMPACTING ";
+
+ case 57:
+ return "WM_COMPAREITEM ";
+
+ case 123:
+ return "WM_CONTEXTMENU ";
+
+ case 769:
+ return "WM_COPY ";
+
+ case 74:
+ return "WM_COPYDATA ";
+
+ case 1:
+ return "WM_CREATE ";
+
+ case 309:
+ return "WM_CTLCOLORBTN ";
+
+ case 310:
+ return "WM_CTLCOLORDLG ";
+
+ case 307:
+ return "WM_CTLCOLOREDIT ";
+
+ case 308:
+ return "WM_CTLCOLORLISTBOX ";
+
+ case 306:
+ return "WM_CTLCOLORMSGBOX ";
+
+ case 311:
+ return "WM_CTLCOLORSCROLLBAR ";
+
+ case 312:
+ return "WM_CTLCOLORSTATIC ";
+
+ case 768:
+ return "WM_CUT ";
+
+ case 259:
+ return "WM_DEADCHAR ";
+
+ case 45:
+ return "WM_DELETEITEM ";
+
+ case 2:
+ return "WM_DESTROY ";
+
+ case 775:
+ return "WM_DESTROYCLIPBOARD ";
+
+ case 537:
+ return "WM_DEVICECHANGE ";
+
+ case 27:
+ return "WM_DEVMODECHANGE ";
+
+ case 126:
+ return "WM_DISPLAYCHANGE ";
+
+ case 776:
+ return "WM_DRAWCLIPBOARD ";
+
+ case 43:
+ return "WM_DRAWITEM ";
+
+ case 563:
+ return "WM_DROPFILES ";
+
+ case 10:
+ return "WM_ENABLE ";
+
+ case 22:
+ return "WM_ENDSESSION ";
+
+ case 289:
+ return "WM_ENTERIDLE ";
+
+ case 529:
+ return "WM_ENTERMENULOOP ";
+
+ case 561:
+ return "WM_ENTERSIZEMOVE ";
+
+ case 20:
+ return "WM_ERASEBKGND ";
+
+ case 530:
+ return "WM_EXITMENULOOP ";
+
+ case 562:
+ return "WM_EXITSIZEMOVE ";
+
+ case 29:
+ return "WM_FONTCHANGE ";
+
+ case 135:
+ return "WM_GETDLGCODE ";
+
+ case 49:
+ return "WM_GETFONT ";
+
+ case 51:
+ return "WM_GETHOTKEY ";
+
+ case 127:
+ return "WM_GETICON ";
+
+ case 36:
+ return "WM_GETMINMAXINFO ";
+
+ case 13:
+ return "WM_GETTEXT ";
+
+ case 14:
+ return "WM_GETTEXTLENGTH ";
+
+ case 856:
+ return "WM_HANDHELDFIRST ";
+
+ case 863:
+ return "WM_HANDHELDLAST ";
+
+ case 83:
+ return "WM_HELP ";
+
+ case 786:
+ return "WM_HOTKEY ";
+
+ case 276:
+ return "WM_HSCROLL ";
+
+ case 782:
+ return "WM_HSCROLLCLIPBOARD ";
+
+ case 39:
+ return "WM_ICONERASEBKGND ";
+
+ case 272:
+ return "WM_INITDIALOG ";
+
+ case 278:
+ return "WM_INITMENU ";
+
+ case 279:
+ return "WM_INITMENUPOPUP ";
+
+ case 0x00FF:
+ return "WM_INPUT ";
+
+ case 81:
+ return "WM_INPUTLANGCHANGE ";
+
+ case 80:
+ return "WM_INPUTLANGCHANGEREQUEST ";
+
+ case 256:
+ return "WM_KEYDOWN ";
+
+ case 257:
+ return "WM_KEYUP ";
+
+ case 8:
+ return "WM_KILLFOCUS ";
+
+ case 546:
+ return "WM_MDIACTIVATE ";
+
+ case 551:
+ return "WM_MDICASCADE ";
+
+ case 544:
+ return "WM_MDICREATE ";
+
+ case 545:
+ return "WM_MDIDESTROY ";
+
+ case 553:
+ return "WM_MDIGETACTIVE ";
+
+ case 552:
+ return "WM_MDIICONARRANGE ";
+
+ case 549:
+ return "WM_MDIMAXIMIZE ";
+
+ case 548:
+ return "WM_MDINEXT ";
+
+ case 564:
+ return "WM_MDIREFRESHMENU ";
+
+ case 547:
+ return "WM_MDIRESTORE ";
+
+ case 560:
+ return "WM_MDISETMENU ";
+
+ case 550:
+ return "WM_MDITILE ";
+
+ case 44:
+ return "WM_MEASUREITEM ";
+
+ case 0x003D:
+ return "WM_GETOBJECT ";
+
+ case 0x0127:
+ return "WM_CHANGEUISTATE ";
+
+ case 0x0128:
+ return "WM_UPDATEUISTATE ";
+
+ case 0x0129:
+ return "WM_QUERYUISTATE ";
+
+ case 0x0125:
+ return "WM_UNINITMENUPOPUP ";
+
+ case 290:
+ return "WM_MENURBUTTONUP ";
+
+ case 0x0126:
+ return "WM_MENUCOMMAND ";
+
+ case 0x0124:
+ return "WM_MENUGETOBJECT ";
+
+ case 0x0123:
+ return "WM_MENUDRAG ";
+
+ case 0x0319:
+ return "WM_APPCOMMAND ";
+
+ case 288:
+ return "WM_MENUCHAR ";
+
+ case 287:
+ return "WM_MENUSELECT ";
+
+ case 531:
+ return "WM_NEXTMENU ";
+
+ case 3:
+ return "WM_MOVE ";
+
+ case 534:
+ return "WM_MOVING ";
+
+ case 134:
+ return "WM_NCACTIVATE ";
+
+ case 131:
+ return "WM_NCCALCSIZE ";
+
+ case 129:
+ return "WM_NCCREATE ";
+
+ case 130:
+ return "WM_NCDESTROY ";
+
+ case 132:
+ return "WM_NCHITTEST ";
+
+ case 163:
+ return "WM_NCLBUTTONDBLCLK ";
+
+ case 161:
+ return "WM_NCLBUTTONDOWN ";
+
+ case 162:
+ return "WM_NCLBUTTONUP ";
+
+ case 169:
+ return "WM_NCMBUTTONDBLCLK ";
+
+ case 167:
+ return "WM_NCMBUTTONDOWN ";
+
+ case 168:
+ return "WM_NCMBUTTONUP ";
+
+ case 171:
+ return "WM_NCXBUTTONDOWN ";
+
+ case 172:
+ return "WM_NCXBUTTONUP ";
+
+ case 173:
+ return "WM_NCXBUTTONDBLCLK ";
+
+ case 0x02A0:
+ return "WM_NCMOUSEHOVER ";
+
+ case 0x02A2:
+ return "WM_NCMOUSELEAVE ";
+
+ case 160:
+ return "WM_NCMOUSEMOVE ";
+
+ case 133:
+ return "WM_NCPAINT ";
+
+ case 166:
+ return "WM_NCRBUTTONDBLCLK ";
+
+ case 164:
+ return "WM_NCRBUTTONDOWN ";
+
+ case 165:
+ return "WM_NCRBUTTONUP ";
+
+ case 40:
+ return "WM_NEXTDLGCTL ";
+
+ case 78:
+ return "WM_NOTIFY ";
+
+ case 85:
+ return "WM_NOTIFYFORMAT ";
+
+ case 0:
+ return "WM_NULL ";
+
+ case 15:
+ return "WM_PAINT ";
+
+ case 777:
+ return "WM_PAINTCLIPBOARD ";
+
+ case 38:
+ return "WM_PAINTICON ";
+
+ case 785:
+ return "WM_PALETTECHANGED ";
+
+ case 784:
+ return "WM_PALETTEISCHANGING ";
+
+ case 528:
+ return "WM_PARENTNOTIFY ";
+
+ case 770:
+ return "WM_PASTE ";
+
+ case 896:
+ return "WM_PENWINFIRST ";
+
+ case 911:
+ return "WM_PENWINLAST ";
+
+ case 72:
+ return "WM_POWER ";
+
+ case 536:
+ return "WM_POWERBROADCAST ";
+
+ case 791:
+ return "WM_PRINT ";
+
+ case 792:
+ return "WM_PRINTCLIENT ";
+
+ case 55:
+ return "WM_QUERYDRAGICON ";
+
+ case 17:
+ return "WM_QUERYENDSESSION ";
+
+ case 783:
+ return "WM_QUERYNEWPALETTE ";
+
+ case 19:
+ return "WM_QUERYOPEN ";
+
+ case 35:
+ return "WM_QUEUESYNC ";
+
+ case 18:
+ return "WM_QUIT ";
+
+ case 774:
+ return "WM_RENDERALLFORMATS ";
+
+ case 773:
+ return "WM_RENDERFORMAT ";
+
+ case 32:
+ return "WM_SETCURSOR ";
+
+ case 7:
+ return "WM_SETFOCUS ";
+
+ case 48:
+ return "WM_SETFONT ";
+
+ case 50:
+ return "WM_SETHOTKEY ";
+
+ case 128:
+ return "WM_SETICON ";
+
+ case 11:
+ return "WM_SETREDRAW ";
+
+ case 12:
+ return "WM_SETTEXT ";
+
+ case 26:
+ return "WM_SETTINGCHANGE ";
+
+ case 24:
+ return "WM_SHOWWINDOW ";
+
+ case 5:
+ return "WM_SIZE ";
+
+ case 779:
+ return "WM_SIZECLIPBOARD ";
+
+ case 532:
+ return "WM_SIZING ";
+
+ case 42:
+ return "WM_SPOOLERSTATUS ";
+
+ case 125:
+ return "WM_STYLECHANGED ";
+
+ case 124:
+ return "WM_STYLECHANGING ";
+
+ case 262:
+ return "WM_SYSCHAR ";
+
+ case 21:
+ return "WM_SYSCOLORCHANGE ";
+
+ case 274:
+ return "WM_SYSCOMMAND ";
+
+ case 263:
+ return "WM_SYSDEADCHAR ";
+
+ case 260:
+ return "WM_SYSKEYDOWN ";
+
+ case 261:
+ return "WM_SYSKEYUP ";
+
+ case 82:
+ return "WM_TCARD ";
+
+ case 794:
+ return "WM_THEMECHANGED ";
+
+ case 30:
+ return "WM_TIMECHANGE ";
+
+ case 275:
+ return "WM_TIMER ";
+
+ case 772:
+ return "WM_UNDO ";
+
+ case 1024:
+ return "WM_USER ";
+
+ case 84:
+ return "WM_USERCHANGED ";
+
+ case 46:
+ return "WM_VKEYTOITEM ";
+
+ case 277:
+ return "WM_VSCROLL ";
+
+ case 778:
+ return "WM_VSCROLLCLIPBOARD ";
+
+ case 71:
+ return "WM_WINDOWPOSCHANGED ";
+
+ case 70:
+ return "WM_WINDOWPOSCHANGING ";
+
+ case 264:
+ return "WM_KEYLAST ";
+
+ case 136:
+ return "WM_SYNCPAINT ";
+
+ case 33:
+ return "WM_MOUSEACTIVATE ";
+
+ case 512:
+ return "WM_MOUSEMOVE ";
+
+ case 513:
+ return "WM_LBUTTONDOWN ";
+
+ case 514:
+ return "WM_LBUTTONUP ";
+
+ case 515:
+ return "WM_LBUTTONDBLCLK ";
+
+ case 516:
+ return "WM_RBUTTONDOWN ";
+
+ case 517:
+ return "WM_RBUTTONUP ";
+
+ case 518:
+ return "WM_RBUTTONDBLCLK ";
+
+ case 519:
+ return "WM_MBUTTONDOWN ";
+
+ case 520:
+ return "WM_MBUTTONUP ";
+
+ case 521:
+ return "WM_MBUTTONDBLCLK ";
+
+ case 522:
+ return "WM_MOUSEWHEEL ";
+
+ case 523:
+ return "WM_XBUTTONDOWN ";
+
+ case 524:
+ return "WM_XBUTTONUP ";
+
+ case 525:
+ return "WM_XBUTTONDBLCLK ";
+
+ case 0x2A1:
+ return "WM_MOUSEHOVER ";
+
+ case 0x2A3:
+ return "WM_MOUSELEAVE ";
+
+ }
+
+ sprintf(str,"%d",msg);
+
+ return str;
+}
+
+void win_perror(const char * lpszFunction)
+{
+ /* Retrieve the system error message for the last-error code */
+
+ LPVOID lpMsgBuf;
+ LPVOID lpDisplayBuf;
+ DWORD dw = GetLastError();
+
+ FormatMessage(
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL,
+ dw,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+ (LPTSTR) &lpMsgBuf,
+ 0, NULL );
+
+ /* Display the error message and exit the process */
+
+ lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT, (lstrlen((LPCTSTR)lpMsgBuf) + lstrlen((LPCTSTR)lpszFunction) + 40) * sizeof(TCHAR));
+
+ snprintf((LPTSTR)lpDisplayBuf,
+ LocalSize(lpDisplayBuf) / sizeof(TCHAR),
+ TEXT("%s failed with error %ld: %s"),
+ lpszFunction, dw, (char *)lpMsgBuf);
+ MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK);
+
+ LocalFree(lpMsgBuf);
+ LocalFree(lpDisplayBuf);
+}