mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-22 20:16:54 +03:00
664 lines
9.3 KiB
C
664 lines
9.3 KiB
C
/*
|
|
* 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);
|
|
}
|